如何在DOS下取得前一天的日期?

如何在DOS下取得前一天的日期?
---------------------------------------------------------------
因为要用到CMD的/V选项,所以先要写一个批处理LOADER.BAT,内容如下:
@ECHO OFF
CMD /V:ON /K %1 %2 %3 %4 %5 %6 %7 %8 %9

然后写取得前一天日期的批处理PREVDAY.BAT,内容如下:
@ECHO OFF
SET YEAR=%1%
SET MONTH=%2%
SET DAY=%3%

SET /A R4=%YEAR% %% 4
SET /A R100=%YEAR% %% 100
SET /A R400=%YEAR% %% 400

SET /A DAY=%DAY%-1
IF /I !DAY! EQU 0 (
IF /I %MONTH% EQU 12 SET DAY=30
IF /I %MONTH% EQU 11 SET DAY=31
IF /I %MONTH% EQU 10 SET DAY=30
IF /I %MONTH% EQU 9 SET DAY=31
IF /I %MONTH% EQU 8 SET DAY=31
IF /I %MONTH% EQU 7 SET DAY=30
IF /I %MONTH% EQU 6 SET DAY=31
IF /I %MONTH% EQU 5 SET DAY=30
IF /I %MONTH% EQU 4 SET DAY=31
IF /I %MONTH% EQU 3 (
SET DAY=28

IF /I %R100% EQU 0 (
IF /I %R400% EQU 0 (
SET BLY=1
)ELSE (
SET BLY=0
)
)ELSE (
IF /I %R4% EQU 0 (
SET BLY=1
)ELSE (
SET BLY=0
)
)

IF /I !BLY! EQU 1 SET DAY=29
)
IF /I %MONTH% EQU 2 SET DAY=31
IF /I %MONTH% EQU 1 SET DAY=31

SET /A MONTH=%MONTH%-1

IF /I !MONTH! EQU 0 (
SET MONTH=12
SET /A YEAR=%YEAR%-1
IF /I !YEAR! EQU 0 SET YEAR=-1
)
)

ECHO %YEAR%-%MONTH%-%DAY%

SET BLY=
SET YEAR=
SET MONTH=
SET DAY=
SET R4=
SET R100=
SET R400=

EXIT

完成之后可以这样调用:
LOADER PREVDAY 2005 7 25

你可以分别测试
LOADER PREVDAY 2005 7 1
LOADER PREVDAY 2005 3 1
LOADER PREVDAY 2005 1 1
LOADER PREVDAY 2000 3 1
等等,看看结果的正确性。

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus