Zeitdauer bzw. Zeitabstand zwischen zwei Datums ausrechnen
Hallo!
Ich möchte gerne im batch die Zeitdauer bzw. den Zeitabstand zwischen zwei Datums ausrechnen. Also zum Beispiel folgender Fall:
set startdate=01.01.08
set starttime=10:42
set enddate=02.01.08
set endtime=11:50
Jetzt möchte ich ausrechnen, wieviel Zeit in Stunden zwischen der Startzeit am 01.01.08 10:42 Uhr bis zum 02.01.08 11:50 Uhr vergangen ist.
Wie kann ich dieses Problem am besten in batch lösen?
Vielen Dank schonmal für eure Hilfe!!
MfG,
BobaFett64
Ich möchte gerne im batch die Zeitdauer bzw. den Zeitabstand zwischen zwei Datums ausrechnen. Also zum Beispiel folgender Fall:
set startdate=01.01.08
set starttime=10:42
set enddate=02.01.08
set endtime=11:50
Jetzt möchte ich ausrechnen, wieviel Zeit in Stunden zwischen der Startzeit am 01.01.08 10:42 Uhr bis zum 02.01.08 11:50 Uhr vergangen ist.
Wie kann ich dieses Problem am besten in batch lösen?
Vielen Dank schonmal für eure Hilfe!!
MfG,
BobaFett64
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 84703
Url: https://administrator.de/forum/zeitdauer-bzw-zeitabstand-zwischen-zwei-datums-ausrechnen-84703.html
Ausgedruckt am: 16.04.2025 um 16:04 Uhr
4 Kommentare
Neuester Kommentar
Ich bin zwar kein Batch-Profi, aber das wird seehr schwierig, eigentlich unmöglich.
Es muß z.B. ein Kalender dabei sein.
Beispiel 26.02 - 03.03. um 16 Uhr.
Woher soll die Batch wissen wieviel Tage der Februar im Jahr XX hat?
Ist evtl. noch ein Feiertag dazwischen (soll er mitgerechnet werden oder nicht?)
und viele Problem mehr ;)
Nimm lieber einen anderen Ansatz (Excel z.b.) !
Mfg
Es muß z.B. ein Kalender dabei sein.
Beispiel 26.02 - 03.03. um 16 Uhr.
Woher soll die Batch wissen wieviel Tage der Februar im Jahr XX hat?
Ist evtl. noch ein Feiertag dazwischen (soll er mitgerechnet werden oder nicht?)
und viele Problem mehr ;)
Nimm lieber einen anderen Ansatz (Excel z.b.) !
Mfg
Moin bobafett64,
Rechnen mit Datumswerte ist mit native Batch eine undankbare Geschichte, da die CMD.exe keinen Datentyp "Datum" kennt.
Du kannst es allerdings mit dem (kurzen) Umweg über eine Zeile VBS hinbekommen.
Am CMD-Prompt schnell testen kannst du es so:
Gruß
Biber
P.S. Und sag bitte in diesem Zweigarm des Forum nie wieder "zwischen zwei Datums"...
Rechnen mit Datumswerte ist mit native Batch eine undankbare Geschichte, da die CMD.exe keinen Datentyp "Datum" kennt.
Du kannst es allerdings mit dem (kurzen) Umweg über eine Zeile VBS hinbekommen.
:: -----irgendwo in Deinem Batch.bat
@echo off & setlocal
...
set startdate=01.01.08
set starttime=10:42
set enddate=02.01.08
set endtime=11:50
...
Set "dd=%temp%\dd.vbs"
echo wscript.echo datediff("h", "%startdate% %starttime%", "%enddate% %endtime%") >"%dd%"
For /f %%i in ('cscript //nologo "%dd%" ') do set "AnzStd=%%i"
echo Es hat %AnzStd% Stunden gedauert...
Am CMD-Prompt schnell testen kannst du es so:
>echo wscript.echo datediff("h", "01.01.08 10:42", "02.01.08 11:50") >x.vbs
>cscript //nologo x.vbs
25
Gruß
Biber
P.S. Und sag bitte in diesem Zweigarm des Forum nie wieder "zwischen zwei Datums"...
Moin BobaFett,
hmm, ich dachte, ich hätte irgendwo gelesen:
Aber egal, Änderungsdemo am CMD-Prompt [Eingaben beginnen mit ">"]:
Grüße
Biber
hmm, ich dachte, ich hätte irgendwo gelesen:
Jetzt möchte ich ausrechnen, wieviel Zeit in Stunden zwischen der Startzeit ...
Aber egal, Änderungsdemo am CMD-Prompt [Eingaben beginnen mit ">"]:
>echo wscript.echo DateDiff("n", "01.01.08 10:42", "02.01.08 11:50") >x.vbs
## Zeit in Minuten total:
>cscript //nologo x.vbs
1508
## Zeit in vollen Stunden:
> set /a 1508 / 60
25
## Zeit der Restminuten:
>set /a 1508 % 60
8
Grüße
Biber