发现运行过程中有bug,就把例子改了一下得到的结果在下面,很明显当秒进位使分加一的时候,秒多了十秒,并且还持续到了08秒- @echo off&setlocal enabledelayedexpansion
- :start
- rem 计算当前时间往后1000秒是什么时间(不包含日期计算)
- set "h=%time:~,2%"&set "m=%time:~3,2%"&set "s=%time:~6,2%"
- echo 当前时间%h%:%m%:%s%
- rem 上面依次截取时间变量的时、分、秒值并分别赋值给h、m、s变量
- for /l %%a in (1,1,10) do (
- set /a m=1!m!%%100,s=1!s!%%100,s+=1
- rem 上面将m、s变量去零转化为有效的10进制数值
- if !s! equ 60 set /a s=0,m+=1
- if !m! equ 60 set /a m=0,h+=1
- if !h! equ 24 set /a h=0
- rem 上面将每次递加后的时、分、秒值转化为相应的进制
- )
- set "m=0%m%"&set "m=!m:~-2!"
- set "s=0%s%"&set "s=!s:~-2!"
- rem 上面将分、秒值在前面补0并取后两位数(补足两位数)
- echo 往后10秒是%h%:%m%:%s%
- pause>nul
- goto start
复制代码 当前时间14:38:59
往后10秒是14:39:19
当前时间14:39:02
往后10秒是14:39:22
当前时间14:39:07
往后10秒是14:39:27
当前时间14:39:08
往后10秒是14:39:28
当前时间14:39:09
往后10秒是14:39:19 |