标题: [日期时间] 批处理版日历 [打印本页]
作者: 随风 时间: 2009-3-25 02:49 标题: 批处理版日历
- @echo off&color 1f&mode con: lines=15 cols=40
- title 日历 输入格式如:2008-9
- rem @随风 @bbs.bathome.net @2009-03-25
- set "var=日 一 二 三 四 五 六"
- set "max= 1"&set "rq="
- :start
- setlocal enabledelayedexpansion
- if not defined rq set rq=%date:~0,4%-%date:~5,2%
- if "!rq:~2,1!"=="" set rq=%date:~0,4%-%rq%
- if "!rq:~3,1!"=="" set rq=%date:~0,4%-%rq%
- set "rq=%rq%-1"
- for /f "tokens=1,2 delims=/\-: " %%a in ("%rq%") do (
- set /a y=%%a,m=100%%b%%100
- )
- set /a leap="^!(y%%4)&^!(^!(y%%100))|^!(y%%400)+28"
- set "str=31 %leap% 31 30 31 30 31 31 30 31 30 31"
- for /f "tokens=%m% delims= " %%a in ("%str%") do (
- for /l %%i in (2 1 %%a)do set mm= %%i&set "max=!max!!mm:~-5!"
- )
- call :Date2Day "%date%" "%rq%" ok
- for /l %%a in (1 1 %ok%) do set "num= !num!"
- set "max=!num!!max!"
- echo.&echo %y% 年 %m% 月
- echo.&echo %var%
- for /l %%a in (1 1 8) do (
- if defined max (
- echo !max:~0,32!
- set "max=!max:~35!"
- ))
- echo.&echo.&echo 请输入 年-月 如:2008-2
- echo.&set /p rq= &cls
- endlocal&set rq=%rq%&goto start
- :Date2Day 计算指定日期的星期及相隔的天数(封装)
- setlocal enabledelayedexpansion&set "n="
- for %%i in ("%~1" "%~2") do (
- for /f "tokens=1-3 delims=/-:\., " %%a in ('echo/%%~i') do (
- set /a yy=%%a,mm=100%%b%%100,dd=100%%c%%100)
- set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
- set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
- if not defined n (set /a n=j) else (set /a n-=j))
- for %%a in (一/1 二/2 三/3 四/4 五/5 六/6 日/0) do (
- for /f "tokens=1,2 delims=/" %%i in ("%%a")do set %%i=%%j&set ".%%j=%%i")
- if %n% gtr 0 (set /a d=^(7-n%%7+%date:~-1%^)%%7) else (
- set /a d=^(~n+1+%date:~-1%^)%%7)
- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |