以下代码仅以h:mm格式显示时间值,我希望输出为hh:mm。任何人都可以确定在哪里添加什么。 下面是我的输入文件。 我还在底部添加了putput。
@ECHO OFF
ECHO Task calculation
set /P st=Please enter the CRQ Start time(hh:mm)
set calc1=00:30
set calc2=01:00
set calc3=01:00
set calc4=00:30
set task1=st
set /A centis=(1%st:~0,2%-100)*3600+(1%st:~3,2%-100)*60
if %centis% GTR 86400 set centis=0
set /A c1=(%calc1:~0,2%)*3600+(%calc1:~3,2%)*60
set /A c2=(%calc2:~0,2%)*3600+(%calc2:~3,2%)*60
set /A c3=(%calc3:~0,2%)*3600+(%calc3:~3,2%)*60
set /A c4=(%calc4:~0,2%)*3600+(%calc4:~3,2%)*60
set /a t1=centis+c1
if %t1% GTR 86400 set t1=0
set /a t1h=t1/3600
set /a t1m=(t1-(t1h*3600))/60
set /a t2=t1+c2
if %t2% GTR 86400 set t2=0
set /a t2h=t2/3600
set /a t2m=(t2-(t2h*3600))/60
set /a t3=t2+c3
if %t3% GTR 86400 set t3=0
set /a t3h=t3/3600
set /a t3m=(t3-(t3h*3600))/60
set /a t4=t3+c4
if %t4% GTR 86400 set t4=0
set /a t4h=t4/3600
set /a t4m=(t4-(t4h*3600))/60
echo.
echo TASK1 StartTime :%st%
echo.
echo Task1 EndTime :%t1h%:%t1m%
echo.
echo Task2 StartTime :%t1h%:%t1m%
echo.
echo Task2 EndTime :%t2h%:%t2m%
echo.
echo Task3 StartTime :%t2h%:%t2m%
echo.
echo Task3 EndTime :%t3h%:%t3m%
echo.
echo Task4 StartTime :%t3h%:%t3m%
echo.
echo Task4 EndTime :%t4h%:%t4m%
echo.
echo CRQ EndTime :%t4h%:%t4m%
echo.
pause>null
以下输出:
Task calculation
Please enter the CRQ Start time(hh:mm)07:00
TASK1 StartTime :07:00
Task1 EndTime :7:30
Task2 StartTime :7:30
Task2 EndTime :8:30
Task3 StartTime :8:30
Task3 EndTime :9:30
Task4 StartTime :9:30
Task4 EndTime :10:0
CRQ EndTime :10:0
答案 0 :(得分:0)
npocmaka已经回答了这个问题。
然而,这个问题的答案是完整的批处理代码,其中包含一个块,用于插入批处理文件最后输出的所有小时和分钟输出的前导0。在处理用户之前,仍未评估用户输入的小时和分钟。
@ECHO OFF
ECHO Task calculation
set /P "st=Please enter the CRQ start time [hh:mm]: "
set calc1=00:30
set calc2=01:00
set calc3=01:00
set calc4=00:30
set /A centis=(1%st:~0,2%-100)*3600+(1%st:~3,2%-100)*60
if %centis% GTR 86400 set centis=0
set /A c1=(%calc1:~0,2%)*3600+(%calc1:~3,2%)*60
set /A c2=(%calc2:~0,2%)*3600+(%calc2:~3,2%)*60
set /A c3=(%calc3:~0,2%)*3600+(%calc3:~3,2%)*60
set /A c4=(%calc4:~0,2%)*3600+(%calc4:~3,2%)*60
set /a t1=centis+c1
if %t1% GTR 86400 set t1=0
set /a t1h=t1/3600
set /a t1m=(t1-(t1h*3600))/60
set /a t2=t1+c2
if %t2% GTR 86400 set t2=0
set /a t2h=t2/3600
set /a t2m=(t2-(t2h*3600))/60
set /a t3=t2+c3
if %t3% GTR 86400 set t3=0
set /a t3h=t3/3600
set /a t3m=(t3-(t3h*3600))/60
set /a t4=t3+c4
if %t4% GTR 86400 set t4=0
set /a t4h=t4/3600
set /a t4m=(t4-(t4h*3600))/60
if %t1h% lss 10 set t1h=0%t1h%
if %t2h% lss 10 set t2h=0%t2h%
if %t3h% lss 10 set t3h=0%t3h%
if %t4h% lss 10 set t4h=0%t4h%
if %t1m% lss 10 set t1m=0%t1m%
if %t2m% lss 10 set t2m=0%t2m%
if %t3m% lss 10 set t3m=0%t3m%
if %t4m% lss 10 set t4m=0%t4m%
echo.
echo Task1 StartTime: %st%
echo.
echo Task1 EndTime: %t1h%:%t1m%
echo.
echo Task2 StartTime: %t1h%:%t1m%
echo.
echo Task2 EndTime: %t2h%:%t2m%
echo.
echo Task3 StartTime: %t2h%:%t2m%
echo.
echo Task3 EndTime: %t3h%:%t3m%
echo.
echo Task4 StartTime: %t3h%:%t3m%
echo.
echo Task4 EndTime: %t4h%:%t4m%
echo.
echo CRQ EndTime: %t4h%:%t4m%
echo.
pause >nul