Calendar::Japanese::Holidayなるものを触ってみた

日本の祝日の名前を取得するモジュールのようです。

僕も前に自分用に同じようなヤツを作りました。

Calendar::Japanese::Holidayなんですが、実装はさておき、実行結果に少し不満が。

というのも昔の休日が軒並みコケる。

まぁどこまで対応するかは用途によって変わるとは思うけど少なくとも、昭和23年(1948年)7月に制定された「国民の祝日に関する法律」を一番古いケースとして対応したほうがいいかと。

まずそれによると元旦は1949年〜現在の1月1日。

成人の日は1949年〜1999年の1月15日。2000年以降は1月の第二月曜日(ハッピーマンデー)

建国記念の日は1967年〜現在の2月11日。

天皇誕生日、というか4月29日の扱いが少しややこしい。

4月29日は1949年〜1988年の間が天皇誕生日、1989年〜2006年の間がみどりの日、2007年〜現在が昭和の日となる。

憲法記念日は1949年〜現在の5月3日。

みどりの日は前述の通り、1989年〜2006年の間は4月29日だったが、2007年からは5月4日となる。

こどもの日は1949年〜現在の5月5日。

海の日は1996年〜2002年の7月20日、2003年以降は7月の第三月曜日(ハッピーマンデー)

敬老の日は1966年〜2002年の9月15日、2003年以降は9月の第三月曜日(ハッピーマンデー)

体育の日は1966年〜1999年の10月10日、2000年以降は10月の第二月曜日(ハッピーマンデー)

文化の日は1948年〜現在の11月3日。

勤労感謝の日は1948年〜現在の11月23日。

天皇誕生日は前述通り、1949年〜1988年の間は4月29日だったが、1989年〜現在は12月23日となる。

春分の日秋分の日は計算によって求められる。よって年によって若干変わることもあるが基本的には春分が3月21日、秋分が9月23日になる。

ややこしいのが国民の休日

制定されたのは1985年12月27日。

定義としては2つの祝日(日曜は含まない)に挟まれた平日(土曜を含む)というもの。

でもっとややこしいのが振替休日。

制定されたのは1973年4月12日。

定義としては祝日が日曜日の場合、その翌日を休日とするというもの。

2007年以降はその翌日以後において最も近い祝日でない日に割り振られるという定義に変更された。

つまり、1日、2日、3日が全て祝日の場合で且つ1日が日曜日だった場合は2007年以降なら4日が振替休日になるということになる。

で最後に、特殊な休日について。

1959年4月10日は皇太子明仁親王の結婚の儀。

1989年2月24日は昭和天皇大喪の礼

1990年11月12日は即位礼正殿の儀。

1993年6月9日は皇太子徳仁親王の結婚の儀。

という四つの特殊な祝日がある。

これで全部かな?