見出し画像

バッチで曜日を取得する方法


@ECHO OFF

set /A WEEK_YYYY=%DATE:~0,4% * 1
set WEEK_MM=%DATE:~5,2%
if %WEEK_MM:~0,1%==0 (
    set WEEK_MM=%WEEK_MM:~1,1%
)
set /A WEEK_DD=%DATE:~8,2% * 1
rem 1月か2月なら年数を引いて月に12を足す ("ツェラーの公式"にて1月と2月は前年の13月と14月として扱う)
if %WEEK_MM% LEQ 2 (
    set /A WEEK_YYYY=%WEEK_YYYY% - 1
    set /A WEEK_MM=%WEEK_MM% + 12
)
set /A WEEK_NUM=(%WEEK_YYYY% + %WEEK_YYYY% / 4 - %WEEK_YYYY% / 100 + %WEEK_YYYY% / 400 + (13 * %WEEK_MM% + 8) / 5 + %WEEK_DD%) %% 7
if %WEEK_NUM% == 0 (
    set WEEK_STR=SUN
)else if %WEEK_NUM% == 1 (
    set WEEK_STR=MON
)else if %WEEK_NUM% == 2 (
    set WEEK_STR=TUE
)else if %WEEK_NUM% == 3 (
    set WEEK_STR=WED
)else if %WEEK_NUM% == 4 (
    set WEEK_STR=THU
)else if %WEEK_NUM% == 5 (
    set WEEK_STR=FRI
)else if %WEEK_NUM% == 6 (
    set WEEK_STR=SUT
)

rem 曜日を数字で出力します。(0:日、1:月、・・・、6:土)
echo %WEEK_NUM%

rem 曜日を英字で出力します。
echo %WEEK_STR%

pause


上記をテスクトップ等に「test.bat」というファイル名と拡張子で保存して実行してみてください。(拡張子が「.bat」であれば「test」の箇所は任意の名前で良いです)

この記事が気に入ったらサポートをしてみませんか?