本帖最后由 flyinnet9 于 2015-8-12 09:54 编辑
改了以前写的程序,想前几天应该都可以(28天??),测试后结果说一下
闰年判断有误,已改正- @echo off
- setlocal enabledelayedexpansion
- set daysago=7
- set year=%date:~0,4%
- set month=%date:~5,2%
- set day=%date:~8,2%
- if %day% gtr %daysago% goto normal
- if %month%==03 goto february
- if %month%==01 goto aty
- for %%i in (05 07 10 12) do if %month%==%%i goto abortion
- for %%i in (02 04 06 08 09 11 ) do if %month%==%%i goto monthly
-
- :abortion
- set /a day=30+!day!
- if %month:~0,1%==0 set /a month=%month:~1%
- set /a month=!month!-1
- if !month! lss 10 set month=0!month!
- goto normal
-
- :monthly
- set /a day=31+!day!
- if %month:~0,1%==0 set /a month=%month:~1%
- set /a month=!month!-1
- if !month! lss 10 set month=0!month!
- goto normal
-
- :february
- set month=02
- if %year:~2,4%==00 (set /a yy=%year%%%400) else (set /a yy=%year%%%4)
- if %yy%==0 (set /a day=29+!day!) else (set /a day=28+!day!)
- goto normal
-
- :aty
- set /a day=31+!day!
- set month=12
- set /a year=%year%-1
- goto normal
-
- :normal
- set /a Yourday=!year!!month!!day!-%daysago%
- echo Today is %date:~0,4%%date:~5,2%%date:~8,2%
- echo Yourday is %Yourday%
- pause
复制代码
|