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

[数值计算] 只用if和SET做日期推算的批处理

如题,要求输入若干天数,显示现在日期的前若干天数的日期:今天是2008年04月22日,输入22,显示20080331
2月是29天1 3 5  7 8 10 12 是31天  其他的都30天
另外帮我看一下if %yue% equ 11 if %ri% gtr 30 set %c:ri=29%哪里错了因该怎么写
麻烦快点,在线等答案。。。谢谢谢谢

  1. @echo off
  2. : 1
  3. set /p d=输入向前推的天数
  4. set nian=%date:~0,4%
  5. set yue=%date:~5,2%
  6. set ri=%date:~8,2%
  7. for %%i in (1 3 5  7 8 10 12) do if %yue% equ %%i if %ri% gtr 31 set ri=31
  8. for %%i in (4 6 9 11) do if %yue% equ %%i if %ri% gtr 30 set ri=30
  9. for %%i in (2) do if %yue% equ %%i if %ri% gtr 31 set ri=29
  10. if %ri% leq 0 set /a %yue%-1
  11. if %yue% leq 0 set /a %nian%-1
  12. set c=%nian%%yue%%ri%
  13. set /a q=%c%-%d%
  14. echo %q%
  15. pause
  16. goto 1
复制代码

麻烦看看哪里不对帮我改下。。。。。

[ 本帖最后由 随风 于 2008-4-23 06:31 编辑 ]

TOP

  1. @echo off
  2. set a=输入追溺天数
  3. set nian=%date:~0.4%
  4. set yue=%date:~5,2%
  5. set ri=%date:~8,2%
  6. for %%a in (1 3 5 7 8 10 12) do (if %yue% equ %%a call :b)
  7. for %%b in (4 6 9 11) do (if %yue% equ %%b call :c)
  8. if %yue% equ 2 call :d
  9. :b
  10. if %ri% lep 0 set /a %yue%-1
  11. if %yue% leq 0 set /a %nian%-1
  12. set /a b=%ri%-%a%
  13. if %b% leq 0 set /a ri=31+%b%
  14. if %b% gtr 0 set ri=%b%
  15. goto 1
  16. :c
  17. if %ri% lep 0 set /a %yue%-1
  18. if %yue% leq 0 set /a %nian%-1
  19. set /a c=%ri%-%a%
  20. if %c% leq 0 set /a ri=30+%c%
  21. if %c% gtr 0 set ri=%c%
  22. goto 1
  23. :d
  24. if %ri% lep 0 set /a %yue%-1
  25. if %yue% leq 0 set /a %nian%-1
  26. set /a d=%ri%-%a%
  27. if %d% lep 0 set /a ri=29+%d%
  28. if %c% gtr 0 set ri=%c%
  29. gpto 1
  30. :1
  31. set p=%nian%%yue%%ri%
  32. echo %p%
  33. pause
复制代码


帮我看下这个哪里不对???

TOP

返回列表