bobafett64
Goto Top

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

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

Ravers
Ravers 04.04.2008 um 13:11:39 Uhr
Goto Top
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
Biber
Biber 04.04.2008 um 13:22:48 Uhr
Goto Top
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.
:: -----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"...
BobaFett64
BobaFett64 15.04.2008 um 14:19:04 Uhr
Goto Top
Danke für das Skript!

Jetzt bekomme ich die Zeitdifferenz in Stunden.
Ich bräuchte aber bitte auch noch die Minuten.

Gruß,
BobaFett64
Biber
Biber 15.04.2008 um 18:34:05 Uhr
Goto Top
Moin BobaFett,

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