Board logo

标题: [数值计算] 如何用bat比较时间 [打印本页]

作者: zsfeng    时间: 2009-2-23 17:33     标题: 如何用bat比较时间

比如现在的时间是17:18  就是用time/t 可以得到
然后我只要看 分钟(18)  
分钟<30  显示 17:30
分钟>=30 显示 18:00

可不可以用bath 来做? 谢谢

[ 本帖最后由 zsfeng 于 2009-2-24 11:51 编辑 ]
作者: zsfeng    时间: 2009-2-25 10:22

看到2个把时间+10分钟的 但是不会修改
  1. @echo off
  2. set aDate=%time: =%
  3. for /f "tokens=1-4 delims=:." %%i in ("%aDate%") do set/a n1=100%%i%%100,n2=100%%j%%100+10,n3=100%%k%%100,n4=100%%l%%100
  4. if %n2% gtr 59 set/a n1+=1
  5. set/a h2=n2%%60,n1=n1%%24
  6. echo %aDate% 10分钟后时间  %n1%:%h2%:%n3%:%n4%
  7. echo\&pause&exit
复制代码
  1. @echo off
  2. :lp
  3. set /a t=%time:~,2%,m=1%time:~3,2%%%100+10
  4. set "s=%time:~6%"
  5. if %m% geq 60 set /a m-=60,t+=1
  6. if %t% geq 24 set /a t-=24
  7. set /p=%t%:%m%:%s%<nul
  8. for /l %%i in (1,1,20) do set /p=<nul
  9. goto lp
复制代码

作者: batman    时间: 2009-2-25 10:54

  1. @echo off
  2. set /a t=1%time:~3,2%%%100
  3. if %t% geq 30 (
  4.    echo 18:00
  5.    ) else (
  6.    echo 17:30
  7. )
  8. pause>nul
复制代码

作者: zsfeng    时间: 2009-2-25 11:29

谢谢 我的意思是这样
  1. @echo off
  2. set /a t=%time:~,2%,m=1%time:~3,2%%%100
  3. if %m% geq 30 set /a t+=1 (
  4. echo %t%:00
  5. ) else (
  6. echo %t%:30)
  7. @pause
复制代码
但是这样 会出现2个 结果 好像那个else 没有起到作用
作者: Batcher    时间: 2009-2-25 11:31     标题: 回复 4楼 的帖子

if命令的语法错了
作者: zsfeng    时间: 2009-2-25 11:51

请问该怎么改 我试了把 set /a t+=1 放到括号里面 好像结果就不对了
作者: Batcher    时间: 2009-2-25 19:07     标题: 回复 6楼 的帖子

可到http://bbs.bathome.net/thread-2189-1-1.html学习一下变量延迟扩展的讲解




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2