このツールでできること
「期間内の曜日数計算ツール」は、指定した2つの日付の間に、月曜・火曜・水曜・木曜・金曜・土曜・日曜がそれぞれ何回含まれるかを、両端の日付を含めて(両端含む)算出します。あわせて期間の総日数も表示します。シフト表の作成、給与計算、稼働日数の集計はもちろん、「今年は金曜日が何回ある?」といった素朴な疑問にもすぐ答えられます。
使い方
年・月・日の入力欄で開始日と終了日を指定します。通常の日付であれば、暦の設定は「西暦(グレゴリオ暦)」のままにしておいてください。便利機能として、和暦(明治・大正・昭和・平成・令和)での入力にも対応しています。和暦を選んだ場合、入力した年は元号の年として扱われ、計算前に西暦へ変換されます。日数の計算ロジック自体は世界共通であり、特定の国に依存するものではありません。
計算式
各日付を通し番号(シリアル値)に変換します。両端を含む総日数は 総日数 = 終了シリアル値 − 開始シリアル値 + 1 で求めます。1週間は7日なので、どの曜日も少なくとも 基本回数 = 総日数 ÷ 7(整数商) 回は出現します。余りである 剰余 = 総日数 mod 7 日分が追加の出現分となり、開始日の曜日から順番に1回ずつ割り当てられます。グレゴリオ暦における任意の日付の曜日は、Sakamotoのアルゴリズムで求めています。
$$\text{Count}(w) = \left\lfloor \frac{N}{7} \right\rfloor + \bigl[\,(w - w_0) \bmod 7 < (N \bmod 7)\,\bigr]$$ $$\text{where}\quad \left\{ \begin{aligned} N &= (\text{Serial}_{\text{end}} - \text{Serial}_{\text{start}}) + 1 \\ \text{start} &= \text{Start Yr}/\text{Mo}/\text{Day} \\ \text{end} &= \text{End Yr}/\text{Mo}/\text{Day} \\ w_0 &= \text{weekday of start date} \end{aligned} \right.$$
計算例
2024年1月1日(月曜)から2024年12月31日(火曜)までの場合:2024年はうるう年なので総日数 = 366。基本回数 = \(366 \div 7 = 52\)、剰余 = \(366 \bmod 7 = 2\) となります。月曜から数え始めるため、最初の2曜日(月曜と火曜)にそれぞれ +1 されます。結果は、月曜が53回、火曜が53回、その他の曜日はすべて52回ずつで、合計すると366日になります。
よくある質問
両端の日付は含まれますか? はい、開始日・終了日のどちらも含みます。開始日と終了日が同じ場合(開始日=終了日)、総日数は1日です。
開始日が終了日より後になっている場合は? 自動的に2つの日付を入れ替えるため、総日数は常に正の値になります。
どの暦を使用していますか? 全期間を通じて先発グレゴリオ暦(プロレプティック・グレゴリオ暦)を用います。現代の日付であれば日常で使う暦と完全に一致しますが、1582年以前の非常に古い日付では、歴史上のユリウス暦の記録とずれる場合があります。