日付確認用ロジック

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

コメントを残す