暦を割り算で読む:うるう年と曜日の剰余計算

7日周期と400年周期を手がかりに、日付から曜日を求める。うるう年の例外、日数の数え方、歴史上の暦と現行のグレゴリオ暦の違いも整理する。

この単元の目標
  • グレゴリオ暦のうるう年を4・100・400による割り切れ方で判定できる
  • 日付間の日数を数え、7で割った余りから曜日の移動を求められる
  • 400年間のうるう年の回数と曜日周期を計算で説明できる
  • 現在の暦の規則を過去へ延長した計算と、当時実際に使われた暦を区別できる
📑 目次
  1. 1.暦には「天体の周期」と「数える規則」がある
  2. 2.「4年ごと」だけでは決まらない
  3. 3.曜日は7で割った余りだけ動く
  4. 4.日数の数え方が、曜日計算のかなめ
  5. 5.400年後のカレンダーはなぜ同じ配置か
  6. 6.現行規則を歴史上の記録にそのまま当てない
  7. 練習:規則・区間・余りを分けて考える
  8. 出典とこのレッスンの範囲

1.暦には「天体の周期」と「数える規則」がある

太陽暦は季節の巡りに年を合わせようとする暦です。しかし季節が一巡する長さは整数日ではないので、毎年を365日だけにすると少しずつ季節と日付がずれます。グレゴリオ暦では平年を365日、うるう年を366日として調整します。一方、曜日は日・月・火・水・木・金・土の7日周期です。年や月の区切りで曜日がリセットされることはありません。

以下は現在のグレゴリオ暦の規則による暦算です。西暦は正の整数とし、年0や紀元前の年は扱いません。「日数」は暦の日付が何回進むかで数えます。時計の経過秒数や時差、夏時間の計算ではありません。例題では2024年1月1日が月曜日であることを基準として与えます。

2.「4年ごと」だけでは決まらない

  1. 西暦年が400で割り切れるなら、うるう年。
  2. 400では割り切れず、100で割り切れるなら、平年。
  3. 100では割り切れず、4で割り切れるなら、うるう年。それ以外は平年。

例外の例外を先に調べる順番です。うるう年では2月が29日、平年では28日になります。他の月の日数は同じです。「100の倍数はすべて平年」とすると400の倍数を取り違えます。

西暦年割り切れ方の確認グレゴリオ暦での判定
20242024=4×506、100の倍数ではないうるう年
20252025=4×506+1平年
21002100=100×21=400×5+100平年
24002400=400×6うるう年
例題1:2096年の次のうるう年は?

現行のグレゴリオ暦の規則が続くとして、2096年の次のうるう年と、その間隔を求めよう。

解答・解説

2104年で、8年後です。2097〜2099年は4の倍数でなく、2100年は100で割り切れるが400で割り切れないため平年。2101〜2103年も4の倍数でなく、2104年は4の倍数かつ100の倍数でないためうるう年です。うるう年の間隔は常に4年ではありません。

3.曜日は7で割った余りだけ動く

ある月曜日から14日後も月曜日、16日後は水曜日です。16=7×2+2なので、2週間の部分を取り除いて2日だけ進めればよいのです。整数を割った余りを「剰余」と呼びます。ここでは余りを0以上7未満にそろえます。

D=7q+r(q∈Z, 0≤r<7),D≡r(mod7)D=7q+r\quad(q\in\mathbb Z,\ 0\le r<7),\qquad D\equiv r\pmod 7

Dは基準日からの日数です。記号「≡」と「mod 7」は「7で割った余りが同じ」を表します。曜日にも日曜0・月曜1・火曜2・水曜3・木曜4・金曜5・土曜6と番号を付ければ、基準の番号にDを足して7で割った余りが目的の曜日番号になります。たとえば金曜日から10日後は5+10=15=7×2+1なので月曜日です。

例題2:2024年1月1日の100日後

2024年1月1日(月曜日)から100日後は何曜日か。日付も求めよう。

解答・解説

100=7×14+2なので、月曜日から2日進めて水曜日です。2024年はうるう年なので、1月1日から4月1日までは31+29+31=91日。残り9日進めて4月10日になります。したがって2024年4月10日、水曜日です。1月1日を「1日目」とした100日目とは違い、100日後は基準から100回日付が変わった日です。

過去へ戻る場合も使えます。月曜日の10日前ならD=−10。−10=7×(−2)+4だから、曜日番号は1+4=5、金曜日です。10日戻ることは曜日だけなら4日進むことと同じです。プログラミング言語の % は負数に対して負の値を返す場合があるため、ここで使う0〜6の余りとは区別します。

4.日数の数え方が、曜日計算のかなめ

月その月の日数
1・3・5・7・8・10・12月31日
4・6・9・11月30日
2月平年28日、うるう年29日

1月1日から同じ年のm月d日までなら、m月より前の月の日数の合計に「d−1」を足します。dを足すと1日数え過ぎます。たとえば1月1日から1月1日までは0日、1月2日までは1日です。年をまたぐときは、途中の年の日数も足します。

例題3:2024年3月1日の曜日

2024年1月1日(月曜日)を基準に、3月1日の曜日を求めよう。

解答・解説

3月より前の1月と2月を足し、当月分は1−1=0日。D=31+29+0=60日で、60=7×8+4です。月曜日から4日進むので金曜日。平年と同じつもりで2月を28日とすると、木曜日という誤答になります。

「うるう年だから翌年の同じ日付は必ず2曜日進む」とは限りません。2024年1月1日から2025年1月1日までは2月29日を含む366日ですが、2024年3月1日から2025年3月1日までは365日です。年の名前だけでなく、数える区間に2月29日が入るかを確認します。2月29日は翌年に存在しないので「翌年の同じ日付」自体を作れません。

5.400年後のカレンダーはなぜ同じ配置か

🔍 2001年から2400年までの400年間で数える

  1. 4の倍数の年を候補にする
    400÷4=100400\div4=100

    2004年、2008年、…、2400年の100回です。

  2. 100の倍数を除き、400の倍数を戻す
    100−4+1=97100-4+1=97

    2100・2200・2300・2400年の4回をいったん除き、2400年の1回だけを戻します。

  3. 400年間の総日数を7で割る
    365×400+97=146097=7×20871365\times400+97=146097=7\times20871

    総日数が7の倍数なので、2001年1月1日と2401年1月1日は同じ曜日です。

  4. 暦の1年の平均日数
    146097400=365.2425\frac{146097}{400}=365.2425

    単位は日。この平均は暦の規則から得られる正確な値で、各年が365.2425日になるという意味ではありません。

年に400を足しても4・100・400での割り切れ方は変わらないので、うるう年の配置も繰り返します。したがって現行の規則を保つ限り、400年後には同じ月日の曜日も一致します。ただし祝日や行事の日程まで同じとは限りません。また、この暦の平均年と天文学的な季節の周期は完全には一致しないため、曜日の周期が正確でも季節とのずれが永久にゼロになるわけではありません。

6.現行規則を歴史上の記録にそのまま当てない

米国海軍天文台の暦の解説では、グレゴリオ暦の導入は1582年とされています。それ以前からあるユリウス暦の基本規則は4年に1回のうるう年で、グレゴリオ暦の100年・400年の例外とは異なります。たとえば1900年は、グレゴリオ暦なら平年ですが、ユリウス暦の規則ならうるう年です。二つの暦は同じ年号でも同じ日付の対応になるとは限りません。

「1582年に導入」は、世界中のすべての地域で同時に使い始めたという意味ではありません。歴史資料の日付や曜日を調べるには、その地域・時期の暦と改暦時の扱いを確認します。現行のグレゴリオ暦を導入前まで機械的に延長する方式は先発グレゴリオ暦と呼ばれ、計算上便利ですが、当時の暦の使用を証明するものではありません。本記事の曜日例題は近現代に限定しています。

練習:規則・区間・余りを分けて考える

練習問題
  1. グレゴリオ暦で2200年と2800年はそれぞれ平年か、うるう年か。

    解答・解説

    2200年は平年。2200=100×22だが400×5+200なので400では割り切れません。2800年はうるう年。2800=400×7だからです。100の倍数というだけでは同じ判定になりません。

  2. 水曜日から45日後は何曜日か。基準日を0日後として数える。

    解答・解説

    土曜日。45=7×6+3なので、水曜日から木・金・土と3日進めます。曜日番号でも3+45=48=7×6+6となります。

  3. 2024年1月1日が月曜日であることから、2025年1月1日の曜日を求めよう。

    解答・解説

    水曜日。2024年はうるう年なので日数差は366日。366=7×52+2より、月曜日から2日進みます。

  4. 2024年3月1日が金曜日であることから、2025年3月1日の曜日を求めよう。

    解答・解説

    土曜日。この区間は2024年2月29日の後に始まり、2025年2月は28日までなので、日数差は365日です。365=7×52+1より1日分進みます。

  5. 現行のグレゴリオ暦が続くなら、2024年2月29日(木曜日)の400年後は何曜日か。

    解答・解説

    2424年2月29日、木曜日です。400年後もうるう年で同じ日付があり、その間の146097日が7の倍数なので曜日も一致します。祝日の一致まで主張しているわけではありません。

確認クイズ

問1. 現行グレゴリオ暦で、うるう年ではないものはどれか。

問2. 日曜日から30日後は何曜日か。

問3. グレゴリオ暦の400年周期で、うるう年は何回あるか。

問4. 歴史資料にある日付の曜日を計算するとき、最も適切な方針はどれか。

出典とこのレッスンの範囲

  • 国立天文台「どの年がうるう年になるの?」 https://www.nao.ac.jp/faq/a0306.html :現在のグレゴリオ暦のうるう年規則と平均365.2425日の説明を参照。天体の周期との完全な一致を示す資料ではありません。
  • 米国海軍天文台(USNO)「Introduction to Calendars」 https://aa.usno.navy.mil/faq/calendars :太陽暦の考え方、ユリウス暦とグレゴリオ暦の基本規則、1582年の導入を参照。各地域の改暦日一覧ではありません。
  • 対象時点は上記資料で説明されている現行規則。2100年以降の計算もその規則が続くという条件付きで、将来の制度変更を予告するものではありません。日数・曜日・400年周期の数値は本文の加算と剰余計算から導いています。
📝 メモこの端末のみに保存
メモ欄はページ読み込み後に使えるようになります。