Board logo

标题: [日期时间] 批处理版日历 [打印本页]

作者: 随风    时间: 2009-3-25 02:49     标题: 批处理版日历

  1. @echo off&color 1f&mode con: lines=15 cols=40
  2. title 日历 输入格式如:2008-9
  3. rem @随风 @bbs.bathome.net @2009-03-25
  4. set "var=日  一  二  三  四  五  六"
  5. set "max= 1"&set "rq="
  6. :start
  7. setlocal enabledelayedexpansion
  8. if not defined rq set rq=%date:~0,4%-%date:~5,2%
  9. if "!rq:~2,1!"=="" set rq=%date:~0,4%-%rq%
  10. if "!rq:~3,1!"=="" set rq=%date:~0,4%-%rq%
  11. set "rq=%rq%-1"
  12. for /f "tokens=1,2 delims=/\-: " %%a in ("%rq%") do (
  13.    set /a y=%%a,m=100%%b%%100
  14. )
  15. set /a leap="^!(y%%4)&^!(^!(y%%100))|^!(y%%400)+28"
  16. set "str=31 %leap% 31 30 31 30 31 31 30 31 30 31"
  17. for /f "tokens=%m% delims= " %%a in ("%str%") do (
  18.    for /l %%i in (2 1 %%a)do set mm=       %%i&set "max=!max!!mm:~-5!"
  19. )
  20. call :Date2Day "%date%" "%rq%" ok
  21. for /l %%a in (1 1 %ok%) do set "num=     !num!"
  22. set "max=!num!!max!"
  23. echo.&echo    %y% 年 %m% 月
  24. echo.&echo    %var%
  25. for /l %%a in (1 1 8) do (
  26.    if defined max (
  27.       echo    !max:~0,32!
  28.       set "max=!max:~35!"
  29. ))
  30. echo.&echo.&echo    请输入 年-月 如:2008-2
  31. echo.&set /p rq=   &cls
  32. endlocal&set rq=%rq%&goto start
  33. :Date2Day 计算指定日期的星期及相隔的天数(封装)
  34. setlocal enabledelayedexpansion&set "n="
  35. for %%i in ("%~1" "%~2") do (
  36. for /f "tokens=1-3 delims=/-:\., " %%a in ('echo/%%~i') do (
  37. set /a yy=%%a,mm=100%%b%%100,dd=100%%c%%100)
  38. set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
  39. set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
  40. if not defined n (set /a n=j) else (set /a n-=j))
  41. for %%a in (一/1 二/2 三/3 四/4 五/5 六/6 日/0) do (
  42. for /f "tokens=1,2 delims=/" %%i in ("%%a")do set %%i=%%j&set ".%%j=%%i")
  43. if %n% gtr 0 (set /a d=^(7-n%%7+%date:~-1%^)%%7) else (
  44. set /a d=^(~n+1+%date:~-1%^)%%7)
  45. endlocal&set %~3=%d%&goto :EOF
复制代码

作者: winload    时间: 2011-4-18 20:34

1# 随风

当输入 0000-0 时....................
作者: techon    时间: 2011-5-13 13:52

好多的计算。。。 看着眼晕

没对输入做处理。。。
作者: 狱渊    时间: 2013-5-1 10:48

显示错误  说是此时不应有····
                     找不到操作数
作者: busboy    时间: 2013-12-18 19:55

可以用的~~~




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