Uhrzeit differenz in der XP Kommandozeile berechnen
hallo,
ich habe in 2 Dateien 2 verschiedene uhrzeiten, die sich gelegentlich ändern, wie kann ich die differenz der beiden zeiten herausfinden und an eine 3. zeit addieren?
beispiel:
time.txt enthält 10:00:00
zeit1=10:00:00
time2.txt enthält 11:03:33
zeit2=11:03:33
differenz wären hier 01:03:33
timenow.txt enthält 20:00:00
zeit3=20:00:00
neue zeit3=zeit3+differenz
zeit3=21:03:33
kann es jemand nachvollziehen? ich würde das problem gern in der XP kommandozeile lösen.
könnte man den Beitrag zu meinem problem umeditieren?
mfg
Axel
ich habe in 2 Dateien 2 verschiedene uhrzeiten, die sich gelegentlich ändern, wie kann ich die differenz der beiden zeiten herausfinden und an eine 3. zeit addieren?
beispiel:
time.txt enthält 10:00:00
zeit1=10:00:00
time2.txt enthält 11:03:33
zeit2=11:03:33
differenz wären hier 01:03:33
timenow.txt enthält 20:00:00
zeit3=20:00:00
neue zeit3=zeit3+differenz
zeit3=21:03:33
kann es jemand nachvollziehen? ich würde das problem gern in der XP kommandozeile lösen.
könnte man den Beitrag zu meinem problem umeditieren?
mfg
Axel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 58993
Url: https://administrator.de/forum/uhrzeit-differenz-in-der-xp-kommandozeile-berechnen-58993.html
Ausgedruckt am: 22.04.2025 um 15:04 Uhr
7 Kommentare
Neuester Kommentar
Moin Axel-the.Smoker,
willkommen im Forum.
Nachvollziehen kann ich Dein Ansinnen schon, aber ich kann noch nicht so genau erkennen, wo die Schwierigkeiten liegen.
Die Mimik ist, da Batch keine Zeit-Rechnung unterstützt, doch schon vorgegeben.
Du musst den Stunden-Minuten-Sekunden-String "umrechnen" in Sekunden, dann kannst mit absoluten Werten [Sekunden seit Mitternacht oder auch Sekunden seit Silvester] Differenzen oder Summen bilden.
Vielleicht macht es eine Quick & Dirty-Variation des Themas von damals, dass Du ja schon gefunden hast, klar:
Am CMD-Prompt:
Ich denke, das Vorkaspern der Addition von Sekundenwerten wäre jetzt auch nicht viel ergiebiger als die Differenzermittlung.
Wo liegt denn die Schwierigkeit (ich bin kein so guter Erklärer)?
Gruss
Biber
willkommen im Forum.
Nachvollziehen kann ich Dein Ansinnen schon, aber ich kann noch nicht so genau erkennen, wo die Schwierigkeiten liegen.
Die Mimik ist, da Batch keine Zeit-Rechnung unterstützt, doch schon vorgegeben.
Du musst den Stunden-Minuten-Sekunden-String "umrechnen" in Sekunden, dann kannst mit absoluten Werten [Sekunden seit Mitternacht oder auch Sekunden seit Silvester] Differenzen oder Summen bilden.
Vielleicht macht es eine Quick & Dirty-Variation des Themas von damals, dass Du ja schon gefunden hast, klar:
::---ShowTime.bat Biber 2007 Sinnfreier Batch zur Demo Zeitdaueranzeige im Batch
@echo off & setlocal
Set zeit1=10:00:00
Set zeit2=11:03:33
:: den lassen wir für später...Set zeit3=20:00:00
for /f "tokens=1-3 delims=:," %%i in ("%zeit1%") do set /a start=%%i*3600+60*(1%%j %% 100)+1%%k-100
REM Variable %Start% hat jetzt einen in Sekunden umgerechneten %time%-Wert.
for /f "tokens=1-3 delims=:," %%i in ("%zeit2%") do set /a stop=%%i*3600+60*(1%%j %% 100)+1%%k-100
REM Auch Variable %Stop% hat jetzt einen in Sekunden umgerechneten %time%-Wert.
Set /a DauerinStd=(stop-start) / 3600
Set /a DauerInMin=(stop-start-(DauerinStd*3600) ) / 60
Set /a UndRestInSecs= (stop-start) -(DauerinStd*3600)- DauerInMin*60
@Echo [Unformatiert] Gedauert hat es %dauerinStd%:%dauerInMin%:%UndRestInSecs%
REM Oder formatiert:
Set /a FmtSecs=UndRestInSecs+100
Set /a FmtMins=DauerInMin+100
Set /a FmtStd=DauerInStd+100
@Echo [Formatiert] Gedauert hat es %FmtStd:~-2%:%FmtMins:~-2%:%FmtSecs:~-2%
>e:\schnipsel\Showtime.bat
[Unformatiert] Gedauert hat es 1:3:33
[Formatiert] Gedauert hat es 01:03:33
Ich denke, das Vorkaspern der Addition von Sekundenwerten wäre jetzt auch nicht viel ergiebiger als die Differenzermittlung.
Wo liegt denn die Schwierigkeit (ich bin kein so guter Erklärer)?
Gruss
Biber
Moin Axel,
Grüße
Biber
jedoch funktioniert es noch nicht 100% ...
Ist ja auch nicht von M$, sondern nur von mir..... und nur mit manchen uhrzeiten, ...
Dann gib doch bitte ein paar Beispiele für nicht funktionierende.. ich möchte nicht alle Kombinationen durchprobieren.....wo könnte der fehler noch liegen?
Zu hohe Luftfeuchtigkeit? Seitenwind? Zu feiner Sand?Grüße
Biber
Hallo Axel-the-Smoker!
Da sich's mit (temporärem) VB-Script etwas leichter rechnet (und formatiert), vielleicht auch noch folgende Variante:
Die Übergabe der Zeitwerte erfolgt nach dem Schema "von" - "bis", oder anders formuliert: Der zuerst übergebene Wert wird vom zweiten Wert abgezogen (siehe Beispiele oben).
Grüße
bastla
P.S.: Ich bin eher toler- als militant, und antworte daher auch Rauchern ...
Da sich's mit (temporärem) VB-Script etwas leichter rechnet (und formatiert), vielleicht auch noch folgende Variante:
@echo off & setlocal
set "ZeitBer=%temp%\ZeitBer.vbs"
set zeit1=10:00:00
set zeit2=11:03:33
echo Sec=DateDiff("s",WScript.Arguments(0),WScript.Arguments(1)):Sec=Sec-(Sec^<0)*86400:WScript.Echo FormatDateTime(Sec/86400,3)>"%ZeitBer%"
for /f "delims=" %%i in ('cscript //nologo "%ZeitBer%" %zeit1% %zeit2%') do set "diff1=%%i"
for /f "delims=" %%i in ('cscript //nologo "%ZeitBer%" %zeit2% %zeit1%') do set "diff2=%%i"
for /f "tokens=1-3 delims=:" %%i in ('cscript //nologo "%ZeitBer%" %zeit1% %zeit2%') do set /a diffStd=%%i & set /a diffMin=%%j & set /a diffSek=%%k
del "%ZeitBer%"
set diff
Grüße
bastla
P.S.: Ich bin eher toler- als militant, und antworte daher auch Rauchern ...
@axel-the-ex-smoker
Mach es nicht so kompliziert.
ich habe es oben schon geschrieben (oder zumindest gedacht):
Für Quick-und-Dirty, also Zeitberechnungen von-bis im Minuten/Stundenbereich
---> mit Sekunden seit Mitternacht als Basis recnnen.
Für mehr Robustheit: umrechnen auf Sekunden seit Silvester. Oder seit 1.1.1970.
Oder Einführung des Vatertags.
Spricht doch nichts dagegen, wenn da größere Sekundenzahlen addiert/subtrahiert werden.
Gruß
Biber
hier ein schema..
In die Tonne damit.Mach es nicht so kompliziert.
ich habe es oben schon geschrieben (oder zumindest gedacht):
Für Quick-und-Dirty, also Zeitberechnungen von-bis im Minuten/Stundenbereich
---> mit Sekunden seit Mitternacht als Basis recnnen.
Für mehr Robustheit: umrechnen auf Sekunden seit Silvester. Oder seit 1.1.1970.
Oder Einführung des Vatertags.
Spricht doch nichts dagegen, wenn da größere Sekundenzahlen addiert/subtrahiert werden.
Gruß
Biber