无忧启动论坛

标题: 如何去掉时间中10位的0? [打印本页]

作者: 807979023    时间: 2021-7-26 19:15
标题: 如何去掉时间中10位的0?
本帖最后由 807979023 于 2021-7-27 14:06 编辑

批处理之家netbenton大师作品,可计算时分秒0.01秒,跨天正确,可pe中运行。
如何把 02:09:04:51 改成 2时9分4.51秒 ?00:00:01:25 改成 1.25秒 ?
另外计算上午时间,提示运算符不存在,实际计算又是正确的。
  1. @echo off&color 1f&echo.
  2. set tt1=%time%
  3. pause
  4. set tt2=%time%
  5. call :etime "%tt1%" "%tt2%" tt3
  6. echo.
  7. echo 开始时间: %tt1%
  8. echo 结束时间: %tt2%
  9. echo 共计时间: %tt3%
  10. echo **************************************************
  11. echo 以下试验,按任意键继续...
  12. pause >nul
  13. echo.
  14. echo 试验  共计时间应为 2时9分4.51秒
  15. set tt1=23:51:00.50
  16. set tt2=2:00:05.01
  17. call :etime "%tt1%" "%tt2%" tt3
  18. echo.
  19. echo 开始时间: %tt1%
  20. echo 结束时间: %tt2%
  21. echo 共计时间: %tt3%
  22. echo.&echo 按任意键退出...&pause >nul&exit

  23. :etime <begin_time> <end_time> [return]
  24. setlocal enabledelayedexpansion
  25. set a=0%~1
  26. set b=0%~2
  27. set c=24:60:60:00
  28. set z=1&set e=
  29. for /l %%a in (2,3,11)do (
  30.   set/a v=2!b:~-%%a,2!-1!a:~-%%a,2!-1+z,k=!c:~-%%a,2!,j=k+v
  31.   set z=!v:~-3,-2!
  32.   set/a j=j-z*k
  33.   set e=:!j:~-2!!e!
  34. )
  35. endlocal&(if %3.==. (echo %e:~1%) else set %3=%e:~1%)&goto :EOF
复制代码

作者: 邪恶海盗    时间: 2021-7-26 20:03
00:00:01:25跟1.25秒不是一回事吧???
作者: 807979023    时间: 2021-7-26 20:49
邪恶海盗 发表于 2021-7-26 20:03
00:00:01:25跟1.25秒不是一回事吧???

不好看。
作者: chenfine    时间: 2021-7-26 23:28
学习学习
作者: chenfine    时间: 2021-7-26 23:29
学习学习
作者: qq叔    时间: 2021-7-27 07:13
早上好!来学习了
作者: 青青草    时间: 2021-7-27 11:26
参考:http://wuyou.net/forum.php?mod=v ... &extra=page%3D1
作者: 807979023    时间: 2021-7-27 14:05
已解决,改得不好

  1. @echo off&color 1f&echo.
  2. if "%time:~0,1%"==" " (set tt1=%time:~1%)else (set tt1=%time%)
  3. pause
  4. if "%time:~0,1%"==" " (set tt2=%time:~1%)else (set tt2=%time%)
  5. call :time0 "%tt1%" "%tt2%" tt3
  6. echo.
  7. echo 开始时间: %tt1%
  8. echo 结束时间: %tt2%
  9. set s=%tt3:~0,2%
  10. if "%s:~0,1%"=="0" set s=%s:~1,1%
  11. set f=%tt3:~3,2%
  12. if "%f:~0,1%"=="0" set f=%f:~1,1%
  13. set m=%tt3:~6,2%
  14. if "%m:~0,1%"=="0" set m=%m:~1,1%
  15. set n=%tt3:~9,2%
  16. set tt3=%s%时%f%分%m%.%n%秒
  17. if "%s%"=="0" (
  18.   set tt3=%f%分%m%.%n%秒
  19.   if "%f%"=="0" set tt3=%m%.%n%秒
  20. )
  21. echo 共计时间: %tt3%
  22. echo **************************************************
  23. echo 按任意键继续...
  24. pause >nul
  25. echo.
  26. echo 试验  共计时间应为 3时0分4.51秒
  27. set tt1=23:00:00.50
  28. set tt2=2:00:05.01

  29. call :time0 "%tt1%" "%tt2%" tt3
  30. echo.
  31. echo 开始时间: %tt1%
  32. echo 结束时间: %tt2%
  33. set s=%tt3:~0,2%
  34. if "%s:~0,1%"=="0" set s=%s:~1,1%
  35. set f=%tt3:~3,2%
  36. if "%f:~0,1%"=="0" set f=%f:~1,1%
  37. set m=%tt3:~6,2%
  38. if "%m:~0,1%"=="0" set m=%m:~1,1%
  39. set n=%tt3:~9,2%
  40. set tt3=%s%时%f%分%m%.%n%秒
  41. if "%s%"=="0" (
  42.   set tt3=%f%分%m%.%n%秒
  43.   if "%f%"=="0" set tt3=%m%.%n%秒
  44. )
  45. echo 共计时间: %tt3%
  46. echo.&echo 按任意键退出...&pause >nul&exit

  47. :time0 <begin_time> <end_time> [return]
  48. setlocal enabledelayedexpansion
  49. set a=0%~1
  50. set b=0%~2
  51. set c=24:60:60:00
  52. set z=1&set e=
  53. for /l %%a in (2,3,11)do (
  54.   set/a v=2!b:~-%%a,2!-1!a:~-%%a,2!-1+z,k=!c:~-%%a,2!,j=k+v
  55.   set z=!v:~-3,-2!
  56.   set/a j=j-z*k
  57.   set e=:!j:~-2!!e!
  58. )
  59. endlocal&(if %3.==. (echo %e:~1%) else set %3=%e:~1%)&goto :EOF
复制代码

作者: 171222287    时间: 2021-8-8 12:01
谢谢分享!
作者: 807979023    时间: 2021-8-8 22:08
171222287 发表于 2021-8-8 12:01
谢谢分享!

8楼要加1句  if "%n:~1,1%"=="" set n=0%n%
  1. @echo off&color 1f
  2. if "%time:~0,1%"==" " (set tt1=%time:~1%)else (set tt1=%time%)
  3. pause >nul
  4. if "%time:~0,1%"==" " (set tt2=%time:~1%)else (set tt2=%time%)
  5. call :etime "%tt1%" "%tt2%" tt3
  6. call :tt3
  7. echo 开始时间: %tt1%
  8. echo 结束时间: %tt2%
  9. echo 共计时间: %tt3%
  10. echo.
  11. echo 按任意键退出...&pause >nul&exit

  12. :etime <begin_time> <end_time> [return]
  13. setlocal enabledelayedexpansion
  14. set a=0%~1
  15. set b=0%~2
  16. set c=24:60:60:00
  17. set z=1&set e=
  18. for /l %%a in (2,3,11)do (
  19.   set/a v=2!b:~-%%a,2!-1!a:~-%%a,2!-1+z,k=!c:~-%%a,2!,j=k+v
  20.   set z=!v:~-3,-2!
  21.   set/a j=j-z*k
  22.   set e=:!j:~-2!!e!
  23. )
  24. endlocal&(if %3.==. (echo %e:~1%) else set %3=%e:~1%)&goto :EOF

  25. :tt3
  26. set s=%tt3:~0,2%
  27. if "%s:~0,1%"=="0" set s=%s:~1,1%
  28. set f=%tt3:~3,2%
  29. if "%f:~0,1%"=="0" set f=%f:~1,1%
  30. set m=%tt3:~6,2%
  31. if "%m:~0,1%"=="0" set m=%m:~1,1%
  32. set n=%tt3:~9,2%
  33. if "%n:~1,1%"=="" set n=0%n%
  34. set tt3=%s%时%f%分%m%.%n%秒
  35. if "%s%"=="0" (
  36.   set tt3=%f%分%m%.%n%秒
  37.   if "%f%"=="0" set tt3=%m%.%n%秒
  38. )
  39. goto :EOF
复制代码





欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3