(初出:2017/08/31 最終更新:2018/05/22)
私は迷信というものが嫌いです
13日の金曜日に特別な意味を持たせてしまうなんてナンセンス!だと思っています
だって、13日の金曜日なんて毎年必ずあるんですから、珍しくともなんともありません
なんて考えていたら、ふと疑問が沸いてきました
「13日の金曜日」に限らず、「○日の△曜日」は毎年全て揃っているんだろうか?
検証してみたら、面白い結果が出ました
グレゴリオ暦ではカレンダーは本質的には14種類しか存在しない
\ | 1月1日の曜日 | ||||||
平年 | 日 | 月 | 火 | 水 | 木 | 金 | 土 |
閏年 | 日 | 月 | 火 | 水 | 木 | 金 | 土 |
従って、この14種類について「○日の△曜日」が存在するか否かを調べれば足りる
但し、「1日の△曜日」が全て存在する場合は、「1〜28日の△曜日」が全て存在することが明らか(逆もまた真)なため、28日〜31日についてのみ調べればよい
グレゴリオ暦では以下のように閏年が定められている
従って、暦は400年で一巡する
因みに、暦は400年で曜日も含めて一巡する(例えば、2001年1月1日(21世紀最初の日)は月曜日、2401年1月1日(25世紀最初の日)も月曜日)
そして、この400年の間に上記14種類のカレンダーは全て登場する
Rubyで、上記14種類(平年・閏年/1月1日が日曜〜土曜)のカレンダーについて、「○日の△曜日」が存在しない条件を抽出するプログラムを作成した(表示)(ダウンロード)
Leap: no Day of Jan 1: sun Date: 31 DOW: sat Leap: no Day of Jan 1: mon Date: 31 DOW: sun Leap: no Day of Jan 1: tue Date: 31 DOW: mon Leap: no Day of Jan 1: wed Date: 31 DOW: tue Leap: no Day of Jan 1: thu Date: 31 DOW: wed Leap: no Day of Jan 1: fri Date: 31 DOW: thu Leap: no Day of Jan 1: sat Date: 31 DOW: fri Leap: yes Day of Jan 1: sun Date: 31 DOW: sun Leap: yes Day of Jan 1: mon Date: 31 DOW: mon Leap: yes Day of Jan 1: tue Date: 31 DOW: tue Leap: yes Day of Jan 1: wed Date: 31 DOW: wed Leap: yes Day of Jan 1: thu Date: 31 DOW: thu Leap: yes Day of Jan 1: fri Date: 31 DOW: fri Leap: yes Day of Jan 1: sat Date: 31 DOW: sat
結果の見方
Leap:閏年かどうか(no:平年、yes:閏年)
Day of Jan 1:1月1日の曜日
Date 及び DOW(Day of Week):その年に「Date日のDOW曜日」は存在しない
例えば1行目、日曜始まりの平年(例えば2017年)には、「31日の土曜日」は存在しない
或いは11行目、水曜始まりの閏年(例えば2020年)には、「31日の水曜日」は存在しない
結果より先ず、全ての年において、31日以外の日付(1日〜30日)については特定の曜日が存在しない条件がない、ということが言える
つまり、「1〜30日の日〜土曜日」は毎年必ず存在する(即ち、13日の金曜日も毎年必ず存在する)
次に、31日について見てみると、平年・閏年問わず全ての年について、「31日の△曜日」が存在しない条件が必ず1つだけ存在している
つまり、いずれの年においても、31日については必ず1つだけ存在しない曜日がある(他の曜日は全て存在する)、ということが言える
2017/09/24 追記;2018/02/11 追記
加藤一郎氏より以下のご指摘をいただいた
(前略)
ちなみに、PT2Kさんが導いた曜日不在リストを眺めていたら、
面白いことに気付きました。「平年の31日不在曜日は、その年の元日の曜日から1つだけ前にずれている」
例えば、
元日が(火)なら不在曜日は(月)、
元日が(金)なら不在曜日は(木)そして、
「閏年の31日不在曜日は、その年の元日の曜日と等しい」
(前略)
よりスッキリとしたルール表現を思い付いたので、
記帳しておこうと思います。(中略)
<新表現>
「平年の31日不在曜日は、前年の大晦日の曜日と等しい」
「閏年の31日不在曜日は、その年の元日の曜日と等しい」まあ、本質的には何も変わらないんですけど・・・(汗)
でも、紅白歌合戦を見ながら、
「今日は木曜日かぁ〜、じゃあ来年の31日には木曜日はないんだな」
という感じで考えやすいかもです。
つまり、曜日を相対化すればカレンダーは平年と閏年の2種類しか存在しないため、「31日の△曜日」が存在しない曜日(「不在曜日」)を決定するルールは平年と閏年との2つがあればいい、ということである
14個のルールより2個のルールの方が当然美しい
感服し、ここに掲載する
2018/04/29 追記
更に考察する
平年の場合、1月1日が日曜日(例えば2017年)なら、2月1日は水曜日、3月1日も水曜日、4月1日は土曜日……となる
1月1日が月曜日(例えば2018年)なら、→木曜日→木曜日→日曜日……となる
つまり、2月1日の曜日は1月1日の曜日に対して3日進み、3月1日は2月1日に対して0日、4月1日は3月1日に対して3日……と、前の月からの曜日の進みは、平年と閏年とで一意に定まる
以下にその一覧を示す(但し、2〜27日はずっと同じパターンなので割愛してある)
平年
\ | 01月 | 02月 | 03月 | 04月 | 05月 | 06月 | 07月 | 08月 | 09月 | 10月 | 11月 | 12月 |
01日 | 0 | 3 | 0 | 3 | 2 | 3 | 2 | 3 | 3 | 2 | 3 | 2 |
… | ||||||||||||
28日 | 0 | 3 | 0 | 3 | 2 | 3 | 2 | 3 | 3 | 2 | 3 | 2 |
29日 | 0 | - | 3 | 3 | 2 | 3 | 2 | 3 | 3 | 2 | 3 | 2 |
30日 | 0 | - | 3 | 3 | 2 | 3 | 2 | 3 | 3 | 2 | 3 | 2 |
31日 | 0 | - | 3 | - | 5 | - | 5 | 3 | - | 5 | - | 5 |
閏年
\ | 01月 | 02月 | 03月 | 04月 | 05月 | 06月 | 07月 | 08月 | 09月 | 10月 | 11月 | 12月 |
01日 | 0 | 3 | 1 | 3 | 2 | 3 | 2 | 3 | 3 | 2 | 3 | 2 |
… | ||||||||||||
28日 | 0 | 3 | 1 | 3 | 2 | 3 | 2 | 3 | 3 | 2 | 3 | 2 |
29日 | 0 | 3 | 1 | 3 | 2 | 3 | 2 | 3 | 3 | 2 | 3 | 2 |
30日 | 0 | - | 4 | 3 | 2 | 3 | 2 | 3 | 3 | 2 | 3 | 2 |
31日 | 0 | - | 4 | - | 5 | - | 5 | 3 | - | 5 | - | 5 |
つまり、前記のとおり、曜日を相対化すればカレンダーは平年と閏年の2種類しか存在しない
曜日を相対化した各日付のカレンダー(1月1日の曜日を0とする)を以下に示す
平年
\ | 01月 | 02月 | 03月 | 04月 | 05月 | 06月 | 07月 | 08月 | 09月 | 10月 | 11月 | 12月 |
01日 | 0 | 3 | 3 | 6 | 1 | 4 | 6 | 2 | 5 | 0 | 3 | 5 |
02日 | 1 | 4 | 4 | 0 | 2 | 5 | 0 | 3 | 6 | 1 | 4 | 6 |
… | ||||||||||||
27日 | 5 | 1 | 1 | 4 | 6 | 2 | 4 | 0 | 3 | 5 | 1 | 3 |
28日 | 6 | 2 | 2 | 5 | 0 | 3 | 5 | 1 | 4 | 6 | 2 | 4 |
29日 | 0 | - | 3 | 6 | 1 | 4 | 6 | 2 | 5 | 0 | 3 | 5 |
30日 | 1 | - | 4 | 0 | 2 | 5 | 0 | 3 | 6 | 1 | 4 | 6 |
31日 | 2 | - | 5 | - | 3 | - | 1 | 4 | - | 2 | - | 0 |
閏年
\ | 01月 | 02月 | 03月 | 04月 | 05月 | 06月 | 07月 | 08月 | 09月 | 10月 | 11月 | 12月 |
01日 | 0 | 3 | 4 | 0 | 2 | 5 | 0 | 3 | 6 | 1 | 4 | 6 |
02日 | 1 | 4 | 5 | 1 | 3 | 6 | 1 | 4 | 0 | 2 | 5 | 0 |
… | ||||||||||||
27日 | 5 | 1 | 2 | 5 | 0 | 3 | 5 | 1 | 4 | 6 | 2 | 4 |
28日 | 6 | 2 | 3 | 6 | 1 | 4 | 6 | 2 | 5 | 0 | 3 | 5 |
29日 | 0 | 3 | 4 | 0 | 2 | 5 | 0 | 3 | 6 | 1 | 4 | 6 |
30日 | 1 | - | 5 | 1 | 3 | 6 | 1 | 4 | 0 | 2 | 5 | 0 |
31日 | 2 | - | 6 | - | 4 | - | 2 | 5 | - | 3 | - | 1 |
平年は、1〜28日で相対的に同じパターンで0〜6の数字がすべて揃っている(つまり、すべての曜日が存在する)
29日と30日は、相対的に同じパターン(但し、1〜28日のパターンとは別のもの)で、やはり0〜6が揃っている
31日は、6がないため、1月1日の前日(前の年の大晦日)と同じ曜日のみ存在しない
閏年は、1〜29日で相対的に同じパターンで0〜6の数字がすべて揃っている
30日は、1〜29日とは違うパターンで、やはり0〜6が揃っている
31日は、0がないため、1月1日と同じ曜日のみ存在しない
平年・閏年ともに、31日は7回しかないにも拘らず、上記の表で2がダブっているため、すべての曜日が揃うことはない
平年では、1月と10月のカレンダーが完全に一致する(つまり、1月31日と10月31日の曜日が一致するためダブっている)
閏年では、1月と7月のカレンダーが完全に一致する
「○日の△曜日」が毎年存在するのか、という問いに対して、1〜30日と31日とで全く異なる結果を得た
「1〜30日の日〜土曜日」は毎年必ず全て存在する
「31日の△曜日」は毎年必ず1つだけ存在しない
2017/09/24 追記;2018/02/11 一部追記
存在しない曜日は、
である
2018/05/18 追記
別の言い方をすれば、存在しない曜日は
である
注記:勿論、12月30日でも3月11日でも5月13日でも、3月以降の条件に合う日付ならいずれでも構わないのだが、日本人にとっての覚えやすさから4月1日を採択したものである
2018/05/22 追記
加藤一郎氏より以下のご投稿をいただきました
> 平年・閏年ともその年の4月1日の曜日と同じ
これが最終表現だと思います!
見事です。
初稿を取り敢えず発表して以来、加藤さんの献身的なご指摘を受けて、改稿を重ねてきました
二人三脚で進めてきた思索も、ひと先ず私としては結論に達しました
素晴らしい思索の推進を支援してくださった加藤さんに深甚の感謝を捧げます(2018/05/22)
以上