上面的太繁琐,改进后代码如下 | @echo off&setlocal enabledelayedexpansion | | echo 请输入日期,如2008年8月9日:2008-8-9 | | set /p p= | | for /f "tokens=1,2,3 delims=-" %%i in ("%p%") do set y=%%i &set m=%%j &set d=%%k | | set "g= 00+31+28+31+30+31+30+31+31+30+31+30" | | set /a s=%m%*3 | | call set /a j=%%g:~1,%s%%%%d% | | set i=%y:~-2% | | if "%i%" == "00" ( | | set /a k=%y%%%400 | | if !k! == 0 (goto run) else goto ping | | ) else ( | | set /a l=%y%%%4 | | if !l! == 0 (goto run)else goto ping | | ) | | :run | | if %m% leq 2 (set /a j=%j%) else set /a j=!j!+1 | | :ping | | echo 你输入的日期是这一年中的第%j%天 | | pause&exitCOPY |
|