CODE: [Copy to clipboard]
@echo off&setlocal enabledelayedexpansion
echo 日期必须符合 2009-09-03 星期四 这类的格式
for /f "tokens=1-3 delims=-:/ " %%i in ("%date%") do set Xing1=%%i%%j%%k
:Hy
if "!Xing1:~%Gu1%,1!" neq "" set /a Gu1+=1 &goto Hy
if %Gu1% lss 8 (echo 日期格式错误 &pause &goto :eof)
:Gx
set /p Han1=要从周日作为一周开始,请键入7;要从周一开始,请键入1.然后按回车继续:
if "%Han1%" equ "7" set /a Xing3=3&goto :Hygx
if "%Han1%" equ "1" set /a Xing3=4&goto :Hygx
echo 键入错误,请按任意键重新开始
pause>nul
goto :Gx
:Hygx
set Han2=寒夜孤星日一二三四五六日
if %date:~8,1% equ 0 (set Ye1=%date:~9,1%) else set Ye1=%date:~8,2%
if %date:~5,1% equ 0 (set Ye2=%date:~6,1%) else set Ye2=%date:~5,2%
for /l %%i in (5,1,11) do if "!Han2:~%%i,1!" equ "%date:~13,1%" set /a Hanye1=%Ye1%-%%i+%Han1%-3
if %Hanye1% lss 1 (set /a Gu1=%Ye2%-1) else set Gu1=%Ye2%
if %Gu1% lss 1 (set /a Gu1=12,Guxing2=%date:~0,4%-1) else set /a Guxing2=%date:~0,4%
for %%a in (1:31 2:28 3:31 4:30 5:31 6:30 7:31 8:31 9:30 10:31 11:30 12:31) do for /f "tokens=1,2 delims=:" %%i in ("%%a") do if %Gu1% equ %%i set Xing1=%%j
set /a Guxing1=%Guxing2%%%4
if %Gu1% equ 2 if %Guxing1% equ 0 set Xing1=29
if %Gu1% lss 10 set Gu1=0%Gu1%&echo.&echo 今天是:&echo %date%&echo.&echo 上周是:
set /a Hanye2=%Hanye1%+6
for /l %%i in (%Hanye1%,1,%Hanye2%) do (
if %%i lss 1 (set /a Xing2=%Xing1%+%%i) else set /a Xing2=%%i
set /a Xing3+=1
set Xing2=0!Xing2!
if %%i lss 1 (call echo %Guxing2%-%Gu1%-!Xing2:~-2! 星期%%Han2:~!Xing3!,1%%) else call echo %date:~0,4%-%date:~5,2%-!Xing2:~-2! 星期%%Han2:~!Xing3!,1%%
)
pause>nul
[