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-Key: 84703

Url: https://administrator.de/contentid/84703

Printed on: April 19, 2024 at 04:04 o'clock

Member: Ravers
Ravers Apr 04, 2008 at 11:11:39 (UTC)
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
Member: Biber
Biber Apr 04, 2008 at 11:22:48 (UTC)
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"...
Member: BobaFett64
BobaFett64 Apr 15, 2008 at 12:19:04 (UTC)
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
Member: Biber
Biber Apr 15, 2008 at 16:34:05 (UTC)
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