2018-11-02 21:00:41 +08:00
|
|
|
@echo off
|
|
|
|
|
|
|
|
set start=%~1
|
|
|
|
set end=%~2
|
|
|
|
|
|
|
|
set options="tokens=1-4 delims=:.,"
|
|
|
|
for /f %options% %%a in ("%start%") do set start_h=%%a&set /a start_m=100%%b %% 100&set /a start_s=100%%c %% 100&set /a start_ms=100%%d %% 100
|
|
|
|
for /f %options% %%a in ("%end%") do set end_h=%%a&set /a end_m=100%%b %% 100&set /a end_s=100%%c %% 100&set /a end_ms=100%%d %% 100
|
|
|
|
|
|
|
|
set /a hours=%end_h%-%start_h%
|
|
|
|
set /a mins=%end_m%-%start_m%
|
|
|
|
set /a secs=%end_s%-%start_s%
|
|
|
|
set /a ms=%end_ms%-%start_ms%
|
2023-02-18 21:40:46 +08:00
|
|
|
|
2018-11-02 21:00:41 +08:00
|
|
|
if %ms% lss 0 set /a secs = %secs% - 1 & set /a ms = 100%ms%
|
|
|
|
if %secs% lss 0 set /a mins = %mins% - 1 & set /a secs = 60%secs%
|
|
|
|
if %mins% lss 0 set /a hours = %hours% - 1 & set /a mins = 60%mins%
|
|
|
|
if %hours% lss 0 set /a hours = 24%hours%
|
|
|
|
if 1%ms% lss 100 set ms=0%ms%
|
|
|
|
|
|
|
|
:: Mission accomplished
|
|
|
|
set /a totalsecs = %hours%*3600 + %mins%*60 + %secs%
|
|
|
|
echo Elapsed Time: %hours%:%mins%:%secs%.%ms% (%totalsecs%.%ms%s total)
|
2023-02-18 21:40:46 +08:00
|
|
|
|
|
|
|
:: cleanup
|
|
|
|
set start=
|
|
|
|
set end=
|
|
|
|
set options=
|
|
|
|
|
|
|
|
set start_h=
|
|
|
|
set start_m=
|
|
|
|
set start_s=
|
|
|
|
set start_ms=
|
|
|
|
|
|
|
|
set end_h=
|
|
|
|
set end_m=
|
|
|
|
set end_s=
|
|
|
|
set end_ms=
|
|
|
|
|
|
|
|
set hours=
|
|
|
|
set mins=
|
|
|
|
set secs=
|
|
|
|
set ms=
|
|
|
|
|
|
|
|
set totalsecs=
|
|
|
|
|