Board logo

标题: [日期时间] 批处理如何计算两个时间之差并输出? [打印本页]

作者: aa4936    时间: 2012-6-21 19:55     标题: 批处理如何计算两个时间之差并输出?

如何计算两个时间之差并输出?

输入时间
时间1 “2012-06-21 20:00:00”
时间2 “2012-06-22 08:30:00”

输出
时间差“0天 12小时30分钟0秒”

这种格式
作者: poter    时间: 2012-6-22 20:43

回复 1# aa4936


    楼主真会刁难人
  1. @echo off
  2. setlocal enableDelayedExpansion
  3. set time1=2012-06-21 20:00:00
  4. set time2=2012-06-22 08:30:00
  5. call :z1 !time1:~-8,2!&set a=!aa!
  6. call :z1 !time2:~-8,2!&set b=!aa!
  7. set /a c1=!b!-!a!
  8. if not !c1!==0 call :z1 !c1!&set c1=!aa!
  9. call :z1 !time1:~-5,2!&set a=!aa!
  10. call :z1 !time2:~-5,2!&set b=!aa!
  11. set /a c2=!b!-!a!
  12. if not !c2!==0 call :z1 !c2!&set c2=!aa!
  13. call :z1 !time1:~-2,2!&set a=!aa!
  14. call :z1 !time2:~-2,2!&set b=!aa!
  15. set /a c3=!b!-!a!
  16. if not !c3!==0 call :z1 !c3!&set c3=!aa!
  17. call :z1 !time1:~-11,2!&set a=!aa!
  18. call :z1 !time2:~-11,2!&set b=!aa!
  19. set /a c4=!b!-!a!
  20. if not !c4!==0 call :z1 !c4!&set c4=!aa!
  21. if !c4! geq 1 (
  22. if !c1!==0 (
  23. set c4=!c4!
  24. ) else (
  25. set /a c4=!c4!-1
  26. )
  27. )
  28. echo 时间差“!c4!天 !c1!小时!c2!分钟!c3!秒”
  29. pause&exit
  30. :z1
  31. set aa=%1
  32. set "aa=!aa:-=!"
  33. if "!aa:~0,1!"=="0" set "aa=!aa:~1!"
复制代码

作者: lllsoslll    时间: 2012-6-23 15:11

回复 1# aa4936


    在论坛google搜索 edate 和 etime; 结合这两个函数自己定制; 5~6行的代码
作者: tang0991    时间: 2012-6-23 16:46

原来两个时间差是这样算的!!




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