In tip 0721, I calculated the difference between two dates.
In tip 0863, I performed Time Math.
I have scripted DateTimeDiff.bat to return the difference between two date/times.
The syntax for using DateTimeDiff.bat is:
\[call\] DateTimeDiff Unit Date1 Time1 Date2 Time2 Diff
Where:
Unit can be D to return the difference in whole days, H to return the difference in whole hours, N to return the difference in whole minutes, S to return the difference in seconds. Date1 First date in your date format, like MM/DD/YYYY. Quotes are NOT allowed. Time1 The time on Date1, in your time format, like HH:MM:SS. Quotes are NOT allowed. Date2 Second date in your date format, like MM/DD/YYYY. Quotes are NOT allowed. Time2 The time on Date2, in your time format, like HH:MM:SS. Quotes are NOT allowed. Diff is a call directed numeric environment variable that will contain the difference, in Unit units, between the two date/times. If date/time 1 is greater than date/time 2, Diff we be negative. If the parameters are incorrect, Diff will be -99999999.
Example:
To calculate the number of hours until Christmas:
call DateTimeDiff H %DATE% %TIME:~0,8% 12/25/%DATE:~6,4% 00:00:00 Hours
@echo The number of hours until Christmas is %Hours%
DateTimeDiff.bat contains:
@echo off if \{6\}==\{\} @echo Syntax: DateTimeDiff Unit Date1 Time1 Date2 Time2 Diff&goto :EOF if exist "%TEMP%\DateTimeDiff.vbs" goto vbs @echo dim unt, dt1, dt2, dif, objArguments>"%TEMP%\DateTimeDiff.vbs" @echo set objArguments = Wscript.Arguments>>"%TEMP%\DateTimeDiff.vbs" @echo unt=objArguments(0)>>"%TEMP%\DateTimeDiff.vbs" @echo dt1=objArguments(1)>>"%TEMP%\DateTimeDiff.vbs" @echo dt2=objArguments(2)>>"%TEMP%\DateTimeDiff.vbs" @echo dif=datediff(unt,dt1,dt2)>>"%TEMP%\DateTimeDiff.vbs" @echo WScript.Echo dif>>"%TEMP%\DateTimeDiff.vbs" :vbs set /a %6=-99999999 for /f "Tokens=*" %%d in ('cscript //nologo "%TEMP%\DateTimeDiff.vbs" %1 "%2 %3" "%4 %5"') do set /a %6=%%d
1 comment
Hide comments