1. はじめに

1
2007 年 12 月 20 日

曜日の計算について
新潟工科大学 情報電子工学科 竹野茂治

1

はじめに

以前ある会議で、書類の日付と曜日が 2 箇所食い違っていることを指摘したら、えらく感心されたことがある。それは単に 7/10 (月) ∼ 7/20 (月) のように、同じ曜日なのに日の差が 7 で割り切れない、ということだったように思うが、その程度のことで感心されて逆にこちらが驚いた記憶がある。
しかし、私のある先生は、その年の何月何日と言えば、少し考えて曜日すら言い出す位であった。それは、暗算が優れていたというわけではなく、その先生の言っていたことを今考えてみると、多少のルールと多少の計算で導いていたように思う。その先生が実際にどう考えていたのかは正確には知らないが、ここで少しそれを考察してみたいと思う。

2

月毎の曜日のずれ
その先生は、よく「何月と何月のカレンダー (曜日の並び) は必ず同じになる」と口にしておられた。
各月の初日の曜日は 12 個あるが、曜日は 7 通りしかなく、確かにそのうちのいくつかは同じものになるペアが必ず存在することになり、そのような月のペアに対しては、それが 30 日までか 31 日までかの違いはあるかもしれないが、日と曜日の対応で言えば、確かに同じカレンダーになることになる。しかも、その間に 2月が含まれていなければ、そのペアはどの年でも変わらずペアになることになる。
ここでは、まずどの月とどの月がそのようなペアになるのかを考えてみるとにする。それには、どこかの日を基準にして (例えば日曜であるとして) 考えればよいが、1 月 1 日を基準に考えると、閏年の場合は 3 月以降の曜日がすべて 1 つずつずれてしまうことになるので、3 月 1 日を基準に考えることにする。
また、曜日を数字で、
日 = 0、月 = 1、火 = 2、水 = 3、木 = 4、金 = 5、土 = 6とあらわし、3 月 1 日が日曜日 (=0) であるとして考える。
まず、各月の日数は表 1 のようになっている。2 月は閏年ならば 29 日となる。

2. 月毎の曜日のずれ
月
日数212
3 4 5 6 7 8 9 10 11 1231 28/29 31 30 31 30 31 31 30 31 30 31
表 1: 各月の日数

3 月は 31 日あるが、7 日おき、すなわち 3/1, 3/8, 3/15, 3/22, 3/29 が同じ曜日となるので、3/1 が日曜 (=0) ならば、3/29 も日曜 (=0) となる。4/1 はそこから3 日ずれているので 0+3、すなわち水曜であることになる。
これは、次のように考えてもよい。4/1 は 3/1 の 31 日後 (= 3 月の日数) であり、よって曜日も 31 だけ進む。しかし、曜日は 7 つごとに 0 に戻るので、7 を何回か引いたものと同じになり、よってそれは「7 で割った余り」に等しくなる。
結局、4/1 は 31 ÷ 7 の余り = 3 だけ 3/1 から 4/1 へは曜日は進むことになる。
同じように考えれば、31 日ある月の次の 1 日目は、常に前の月の曜日から 3 進むことになり、30 日ある月の次の 1 日目は 2 進むことになる。
このように考えると、その月の 1 日目と前の月の 1 日目のずれは、前の月の日数によって決定するので、各月の 1 日目の曜日は表 2 のようになる。
月
先月の日数先月とのずれ
1 日の曜日345678910 11 1231 30 31 30 31 31 30 31 30
0 +3 +2 +3 +2 +3 +3 +2 +3 +20 351362402
表 2: 3 月から 12 月の 1 日目の曜日

1 月と 2 月は 3 月から逆算しないといけないが、これは閏年かどうかで変わる。
以後、閏年でない年を平年と呼ぶことにするが、平年ならば 2 月は 28 日あるので、3 月 1 日から 28 日戻すと 2 月 1 日となるが、この 28 は 7 で割り切れるので、3 月 1 日と 2 月 1 日は同じ日曜日となり、閏年ならば、2 月は 29 日なので、さらに 1 日戻すことになるので、2 月 1 日は 7 − 1 = 6、すなわち土曜日となる。
これを表にすると表 3, 4 のようになる。
月
日数次月とのずれ
曜日

32131 28 310 −0 −3004

表 3: 平年の場合の 1,2 月

月日数次月とのずれ
曜日

32131 28 310 −1 −3063

表 4: 閏年の場合の 1,2 月

これらの表を見ると、以下のような月の 1 日の曜日がペアになっていることがわかる。

3. 曜日毎にグループ化

3• 3 月と 11 月 と平年の 2 月 (0)• 9 月と 12 月 (2)• 4 月と 7 月 と閏年の 1 月 (3)• 10 月と平年の 1 月 (4)• 8 月と閏年の 2 月 (6)5 月 (5) と 6 月 (1) は、閏年であってもなくてもペアとなる月はない。平年の場合は、8 月 (6) もペアがなく、閏年の場合は 10 月 (4) もペアはない。

3

曜日毎にグループ化
今度は、これらのペアの月を、曜日毎にグループ化してみる (表 5)。

1 日の曜日
0
1
234
56

月

3, 11, 2 (平年)
69, 124, 7, 1 (閏年)
10, 1 (平年)58, 2 (閏年)

表 5: 各月の 1 日の曜日のペア
閏年の場合は、平年に比べて 1, 2 月は一つずつ減る (戻る) と考えれば、このうち平年の方だけ考えればよい。この各月の先頭の曜日の数字は、月同士の曜日のずれがどれくらいであるかも示していることになるので、この平年の表をなんらかの形で覚えてしまえば、各月のカレンダーの曜日のずれがすぐにわかることになる。
例えば、5 月 10 日が火曜であるとき、9 月 23 日が何曜日であるかを考えてみる。
5 月 1 日と 9 月 1 日は、上の表により 2 − 5 = (−3) 曜日ずれている。よって、
5 月 10 日が火曜 (=2) であれば、9 月 10 日は 2 + (−3) = −1 なので、9 月 23 日は −1 + (23 − 10) = 12 となり、これを 7 で割った余りは 5、すなわち 金曜日ということになる。
このように、今日の日付の曜日を基準にし、知りたい日付の月同士のずれを上の表から求め、日付のずれを加えて、7 で割った余りを考えれば任意の日付の曜日が求められることになる。

4. 余りの作る体4

この計算は、式で書けば以下のようになる:(9/23 の曜日) − (5/10 の曜日)
= {(9/23 の曜日) − (9/10 の曜日)} + {(9/10 の曜日) − (5/10 の曜日)}= 13 + {(9/1 の曜日) − (5/1 の曜日)} = 13 + (2 − 5) = 10,よって、(9/23 の曜日) = (5/10 の曜日) + 10 = 2 + 10 = 12 = 7 + 5 = (金曜日)
なお、数学ではa≡b(mod x)と書くと、「a を x で割った余りと b を x で割った余りが等しい」ことを示すので、上の計算の最後のところは、

2 + 10 = 12 ≡ 5(mod 7)のように書くことができる。

4余りの作る体この余りについては、次のことが成り立つことが知られている (いずれも容易に証明ができるので考えてみるとよいだろう)。

a ≡ p, b ≡ q(mod x) のとき、

• a+b≡p+q(mod x)• a−b≡p−q(mod x)• a×b≡p×q(mod x)

つまり、元の数字の和、差、積の余りは、余りの和、差、積 (の余り) と同じである、ということになる。
曜日の数字は 0 から 6 まで進み、その次はまた 0 に戻る、といった形で考えることになるが、これは前に述べたように 7 で割った余りを考えることになる。
特に 7 のように素数で割った余りの数字にの場合は割り算もできることが知られていて、このような余りの世界を数学では 体 と呼んでいる。
7 の余りの積の表を表 6 に示すが、0 以外のどの列、どの行にも 0 から 6 のすべての数が現われることがわかる。よって、a が 0 でなければ a × x ≡ b (mod 7)という x が常に求まることになり、この x がこの 7 の余りの世界では b ÷ a に相当することになる。
ただ、これが何に使えるかというとあまりいい例は思い浮かばないが、無理矢理考えれば、次のような例がある。

5. 最後に

5×0 1 2 3 4 5 601234560000000012345602461350362514041526305316420654321

表 6: 7 の余りの積の表問題:
あるプロ野球チームで、中 4 日 (5 日毎) に登板するピッチャーが金曜日に登板したとすると、次に火曜日に登板するのは何日後のことか。
解答:
次の x 回目の登板は y = 5x 日後であるから、それが火曜日となるのは、y + (金曜日) = y + 5 ≡ 2 (mod 7)となるとき。よって、

5x + 5 ≡ 2 (mod 7)
5x ≡ 2 − 5 ≡ −3 ≡ 4 (mod 7)x≡4÷5≡5(mod 7) (5 × 5 ≡ 4(mod 7) より)となることが上の表 6 からわかる。よって、x = 5, 12, ... となり、最短で y = 5 × 5 = 25 日後、となる。

5

最後に

3 節に書いたように、平年の月のペアの表 5 を覚えれば暗算でも曜日計算ができそうであることがわかったが、残念ながら表 5 を覚える、いいごろ合わせのようなものが今のところ見つからない。もし何かよさそうなものがあれば教えてもらいたい。
また、今日の 1 年後の曜日は、閏年の 2 月を挟んでいなければ、365 ≡ 1(mod 7)

5. 最後に

6より 1 だけ進むことになるから、それを考えれば、数年前、数年先の曜日も同様に計算できるようになる。
こういったものが暗算でできるようになると、冒頭に書いた話などよりももっとちゃんと感心される、また感心されてもおかしくはないのではなかろうかと思う。