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%日