注:查询年月从1904年01月起,因农历无法用程序进行计算,因此暂无农历显示,本人将继续完善。
-----------------------------------
四楼为加强版
-----------------------------------
十五楼为最终修正版(更新日期2008年4月20日)
附件exe版:http://upload.cn-dos.net/img/248.rar
[ Last edited by zw19750516 on 2008-4-20 at 09:40 AM ]
-----------------------------------
四楼为加强版
-----------------------------------
十五楼为最终修正版(更新日期2008年4月20日)
附件exe版:http://upload.cn-dos.net/img/248.rar
@echo off&color 9f&mode con lines=20
title 批处理版万年历
:begin
cls
echo.&echo.&echo.&echo.&echo.
set var=&set str=&set str1=&set str2=&set str3=&set n=0&set m=0&set v=0&set w=0
set /p var=请输入要查询的月份(格式为2000年08月):
if "%var:~4,1%%var:~7,1%"=="年月" goto year
cls
echo.&echo.&echo.&echo.&echo.
echo 输入格式不正确!请返回正确输入。&ping /n 3 127.1>nul&goto begin
:year
set year=%var:~,4%
set /a str=(%year%-1904)/4&set /a str1=%year%-1904
set /a a=%str1%-%str%*4
set str1=
:month
if %a% equ 0 (set /a number1=%str%*1461) else (set /a number1=%str%*1461+%a%*365+1)
if %var:~5,1% equ 0 (set month=%var:~6,1%) else (set month=%var:~5,2%)
if %month% equ 2 set n=28
if %a% equ 0 set n=29
for %%i in (1,3,5,7,8,10,12) do if "%%i"=="%month%" set n=31
for %%i in (4,6,9,11) do if "%%i"=="%month%" set n=30
set /a month=%month%-1
if %month% equ 0 set /a number2=0
if %month% equ 1 set /a number2=31
if %month% equ 2 set /a number2=31+28
if %month% equ 3 set /a number2=31*2+28
if %month% equ 4 set /a number2=31*2+30+28
if %month% equ 5 set /a number2=31*3+30+28
if %month% equ 6 set /a number2=31*3+30*2+28
if %month% equ 7 set /a number2=31*4+30*2+28
if %month% equ 8 set /a number2=31*5+30*2+28
if %month% equ 9 set /a number2=31*5+30*3+28
if %month% equ 10 set /a number2=31*6+30*3+28
if %month% equ 11 set /a number2=31*6+30*4+28
if %a% equ 0 set /a number2=%number2%+1
if %month% lss 2 set /a number2=%number2%-1
:day
cls
echo.&echo.&echo.&echo.&echo.
echo
echo.
for /l %%i in (1,1,%n%) do (
set day=%%i
call :week %%day%%
)
echo.&echo 本次查询完成,继续查询请按任意键,退出请关闭窗口。
pause>nul&goto begin
:week
set /a w+=1
set /a number=%number1%+%number2%+%1-1
set /a week=%number%/7
set /a b=%number%-%week%*7
set day=%day%日
call,set day=%day: =%
if not "%day:~2,1%"=="日" set day= %day%
set code=五六天一二三四
call,set code=星期%%code:~%b%,1%%
set str1=%str1% %day%
set str2=%str2% %code%
set /a v+=1&set /a m+=1
if %v% gtr 7 set str2=--------------------------------------------------------
if %m% gtr 6 set m=0&echo ^|%str2%^|&echo ^|%str1%^|&set str1=&set str2=
if %w% gtr 28 set str3=%str3% %day%
if %w% equ %n% echo ^|%str2%^|&echo ^|%str3%&echo ^|%str2%^|
goto :eof[ Last edited by zw19750516 on 2008-4-20 at 09:40 AM ]
