13日の金曜日の謎

(最終更新:2017/09/26)


はじめに

私は迷信というものが嫌いです

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 追記

加藤一郎氏より以下のご指摘をいただいた

(前略)
ちなみに、PT2Kさんが導いた曜日不在リストを眺めていたら、
面白いことに気付きました。

「平年の31日不在曜日は、その年の元日の曜日から1つだけ前にずれている」
例えば、
元日が(火)なら不在曜日は(月)、
元日が(金)なら不在曜日は(木)

そして、
「閏年の31日不在曜日は、その年の元日の曜日と等しい」

つまり、曜日を相対化すればカレンダーは平年と閏年の2種類しか存在しないため、「31日の△曜日」が存在しない曜日(「不在曜日」)を決定するルールは平年と閏年との2つがあればいい、ということである

14個のルールより2個のルールの方が当然美しい

感服し、ここに掲載する

まとめ

「○日の△曜日」が毎年存在するのか、という問いに対して、1〜30日と31日とで全く異なる結果を得た

「1〜30日の日〜土曜日」は毎年必ず全て存在する

「31日の△曜日」は毎年必ず1つだけ存在しない

2017/09/24 追記

存在しない曜日は、

である


以上


Valid HTML 4.01 Strict Valid CSS 2.1