batファイル用に前に作ったやつです。
実行日の先月と先々月の最終日を取得します。
%NowYear%=%Date:~0,4%
%NowMonth%=%Date:~5,2%
IF %NowMonth%==02 (
REM 今月が2月のとき
SET LastYear=%NowYear%
SET LastMonth=01
SET LastDate=31
SET /A Last2Year=%NowYear%-1
SET Last2Month=12
SET Last2Date=31
) ELSE IF %NowMonth%==01 (
REM 今月が1月のとき
SET /A LastYear=%NowYear%-1
SET LastMonth=12
SET LastDate=31
SET /A Last2Year=%NowYear%-1
SET Last2Month=11
SET Last2Date=30
) ELSE (
SET LastYear=%NowYear%
SET Last2Year=%NowYear%
IF %NowMonth%==03 (
REM 今月が3月のとき
SET LastMonth=02
IF %YearCheck%==0 (
REM 閏年のとき
SET LastDate=29
) ELSE (
REM 閏年でないとき
SET LastDate=28
)
SET Last2Month=01
SET Last2Date=31
) ELSE IF %NowMonth%==04 (
REM 今月が4月のとき
SET LastMonth=03
SET LastDate=31
SET Last2Month=02
IF %YearCheck%==0 (
REM 閏年のとき
SET Last2Date=29
) ELSE (
REM 閏年でないとき
SET Last2Date=28
)
) ELSE IF %NowMonth%==05 (
REM 今月が5月のとき
SET LastMonth=04
SET LastDate=30
SET Last2Month=03
SET Last2Date=31
) ELSE IF %NowMonth%==06 (
REM 今月が6月のとき
SET LastMonth=05
SET LastDate=31
SET Last2Month=04
SET Last2Date=30
) ELSE IF %NowMonth%==07 (
REM 今月が7月のとき
SET LastMonth=06
SET LastDate=30
SET Last2Month=05
SET Last2Date=31
) ELSE IF %NowMonth%==08 (
REM 今月が8月のとき
SET LastMonth=07
SET LastDate=31
SET Last2Month=06
SET Last2Date=30
) ELSE IF %NowMonth%==09 (
REM 今月が9月のとき
SET LastMonth=08
SET LastDate=31
SET Last2Month=07
SET Last2Date=31
) ELSE IF %NowMonth%==10 (
REM 今月が10月のとき
SET LastMonth=09
SET LastDate=30
SET Last2Month=08
SET Last2Date=31
) ELSE IF %NowMonth%==11 (
REM 今月が11月のとき
SET LastMonth=10
SET LastDate=31
SET Last2Month=09
SET Last2Date=30
) ELSE IF %NowMonth%==12 (
REM 今月が12月のとき
SET LastMonth=11
SET LastDate=30
SET Last2Month=10
SET Last2Date=31
)
)
ECHO 先月の最終日 %LastYear%年%LastMonth%月%LastDate%日
ECHO 先々月の最終日 %Last2Year%年%Last2Month%月%Last2Date%日