[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
bug

call :etime 19:13:11.10 19:15:11.11

结果:
1.21

TOP

我也来一个:
  1. @echo off
  2. rem 计算两点的时间差:etime=time2-time1
  3. rem 保持24小时时间格式: hh:mm:ss:vv
  4. call :etime 23:21:03:09 01:30:23:01
  5. goto :eof
  6. ::前面为演示用
  7. :etime <begin_time> <end_time> [return]
  8. setlocal enabledelayedexpansion
  9. set a=%~1
  10. set b=%~2
  11. set c=24:60:60:00
  12. set z=1&set e=
  13. for /l %%a in (2,3,11)do (
  14.         set/a v=2!b:~-%%a,2!-1!a:~-%%a,2!-1+z,k=!c:~-%%a,2!,j=k+v
  15.         set z=!v:~-3,-2!
  16.         set/a j=j-z*k
  17.         set e=:!j:~-2!!e!
  18. )
  19. endlocal&(if %3.==. (echo %e:~1%) else set %3=%e:~1%)&exit/b
复制代码

[ 本帖最后由 netbenton 于 2009-10-6 22:16 编辑 ]

TOP

小bug
call :etime 23:58:11.10 00:11:12.10

结果:
-85619.00

TOP

re 12 楼 zhouyongjun
真够细心,我改。:
  1. :etime <begin_time> <end_time> [return]  
  2. setlocal enabledelayedexpansion
  3. set a=0%~1
  4. set b=0%~2
  5. set c=24:60:60:00
  6. set z=1
  7. for /l %%a in (2,3,11)do (
  8.         set/a v=2!b:~-%%a,2!-1!a:~-%%a,2!-1+z,k=!c:~-%%a,2!,j=k+v
  9.         set z=!v:~-3,-2!
  10.         set/a j=j-z*k
  11.         set e=:!j:~-2!!e!
  12. )
  13. endlocal&(if %3.==. (echo %e:~1%) else set %3=%e:~1%)&exit/b
复制代码

[ 本帖最后由 netbenton 于 2009-10-7 21:39 编辑 ]

TOP

返回列表