昨天去看过batman的“批处理中的时间计算详解”具体地址:批处理中的时间计算详解,才看了计算多少秒后的时间,从他的代码中得到了一点灵感,就用自己的方法也写了个功能一样的。在分、秒前补0完全是用里面的代码的。这个只是贴出另一种方法而已,给大家参考。
另:可能看起来很乱,不过我的只是一条条语句拼接起来而已- @echo off
- ::将输入的秒数转为对应的:h时m分s秒 的格式
- ::将秒数转换后的时间和当前时间按对应的位置相加,
- ::并完成进位
- ::变量$h、$m、$s 表示当前时间
- ::变量h、m、s 表示秒数转换后的时间
- ::变量_h、_m、_s 表示相加后的时间
- set d=
- set /a $h=%time:~,-9%,$m=1%time:~-8,-6%%%100,$s=1%time:~-5,-3%%%100
- echo 当前时间:%$h%时 %$m%分 %$s%秒
- set /p a=输入秒数:
- set /a h=a/3600,m=a%%3600,s=m%%60,m/=60
- set /a _s=$s+s
- if %_s% geq 60 (set /a m+=1,_s-=60)
- set /a _m=$m+m
- if %_m% geq 60 (set /a h+=1,_m-=60)
- set /a _h=$h+h
- if %_h% geq 24 (set /a d=_h/24,_h%%=24)
- set _m=0%_m%&call set _m=%%_m:~-2%%
- set _s=0%_s%&call set _s=%%_s:~-2%%
- if defined d (echo %a%秒后的时间是:%d%天后的%_h%时 %_m%分 %_s%秒)else echo %a%秒后的时间是:%_h%时 %_m%分 %_s%秒
- pause>nul
复制代码
|