返回列表 发帖

[日期时间] 批处理版日历

@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 :EOFCOPY
技术问题请到论坛发帖求助!

可以用的~~~

TOP

显示错误  说是此时不应有····
                     找不到操作数

TOP

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

没对输入做处理。。。

TOP

1# 随风

当输入 0000-0 时....................

TOP

返回列表