バッチファイルで指定した日付の曜日(数値)を取得する
バッチファイルで指定した日付の曜日(数値)を取得する方法をご紹介します。
コーディング例
@ECHO OFF REM 曜日を取得する年月日(YYYYMMDD) SET YMD=20241001 REM 西暦の年を取得 SET /A YYYY=%YMD:~0,4% * 1 REM 月を取得 SET /A MM=%YMD:~4,2% * 1 REM 日を取得 SET /A DD=%YMD:~6,2% * 1 REM 「ツェラーの公式」を使用するにあたり、 REM 1月と2月は前年の13月、14月として扱う IF %MM% LEQ 2 ( SET /A YYYY=%YYYY% - 1 SET /A MM=%MM% + 12 ) REM 「ツェラーの公式」を使用し、日曜~土曜を0~6の数値で取得する SET /A DAYOFWEEK=(%YYYY% + (%YYYY% / 4) - (%YYYY% / 100) + (%YYYY% / 400) + ((13 * %MM% + 8) / 5) + %DD%) %% 7 ECHO 曜日:%DAYOFWEEK%
実行結果
曜日:2
日付から曜日を取得する方法として「ツェラーの公式」を使用しています。
4行目で曜日を取得する対象となる日付をYYYYMMDD形式で指定しています。
7行目、10行目、13行目では4行目で指定した日付の年・月・日を取得しています。
17~20行目では、「ツェラーの公式」を使用するにあたり1月と2月を前年の13月、14月として変更しています。
23行目で「ツェラーの公式」を使用して曜日を取得しており、以下の計算になります。
([年]+([年]÷4)-([年]÷100)+([年]÷400)+((13×[月]+8)÷5)+[日])を7で割った余り
結果は日曜~土曜を0~6で返します。
2024/10/01は火曜ですので結果として「2」が返されます。
以上、バッチファイルで指定した日付の曜日(数値)を取得する方法のご紹介でした。