バッチで曜日を取得する方法
@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」の箇所は任意の名前で良いです)
この記事が気に入ったらサポートをしてみませんか?