本帖最后由 cxmzlxb 于 2011-6-24 12:41 编辑
- @echo off
- :start
- setlocal&cls
- set /p tian= 请指定要追溯的天数:&echo\
- call :Date2Day "%date%" %tian% ok
- echo %ok%
- endlocal&pause>nul&goto start
- :Date2Day 计算指定天数 前/后 的日期及星期 (封装)
- @echo off&setlocal ENABLEEXTENSIONS
- for /f "tokens=1-3 delims=/-:\, " %%a in ('echo/%~1') 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
- set /a i=j-%~2,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
- set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
- set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
- (if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
- 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 %~2 gtr 0 (set /a d=^(7-%~2%%7+%date:~-1%^)%%7&set x=前) else (
- set /a d=^(~%~2+1+%date:~-1%^)%%7&set x=后)
- call set "d=星期%%.%d%%%"
- endlocal&set %~3=%yy%-%mm%-%dd% %d%&goto :EOF
复制代码 这段代码可以做时间差,从而来得出删出时间,现成的! |