无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4500|回复: 9
打印 上一主题 下一主题

[已解决] 如何去掉时间中10位的0?

[复制链接]
跳转到指定楼层
1#
发表于 2021-7-26 19:15:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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
复制代码
2#
发表于 2021-7-26 20:03:03 | 只看该作者
00:00:01:25跟1.25秒不是一回事吧???

点评

不好看。  详情 回复 发表于 2021-7-26 20:49
回复

使用道具 举报

3#
 楼主| 发表于 2021-7-26 20:49:56 | 只看该作者
邪恶海盗 发表于 2021-7-26 20:03
00:00:01:25跟1.25秒不是一回事吧???

不好看。
回复

使用道具 举报

4#
发表于 2021-7-26 23:28:55 | 只看该作者
学习学习
回复

使用道具 举报

5#
发表于 2021-7-26 23:29:06 | 只看该作者
学习学习
回复

使用道具 举报

6#
发表于 2021-7-27 07:13:50 | 只看该作者
早上好!来学习了
回复

使用道具 举报

7#
发表于 2021-7-27 11:26:58 | 只看该作者
回复

使用道具 举报

8#
 楼主| 发表于 2021-7-27 14:05:28 | 只看该作者
已解决,改得不好

  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
复制代码
回复

使用道具 举报

9#
发表于 2021-8-8 12:01:29 | 只看该作者
谢谢分享!

点评

8楼要加1句 if "%n:~1,1%"=="" set n=0%n%  详情 回复 发表于 2021-8-8 22:08
回复

使用道具 举报

10#
 楼主| 发表于 2021-8-8 22:08:32 | 只看该作者

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
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-3 04:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表