calendar.holidayの間違い
多分、よく知ってる人ならば「なんでわざわざ上のようなスクリプトを書くの?」と思うだろう。
実際、本来ならこういうのはターミナルからcalendarで表示させれば早いし、OSXでもちゃんと祝日用のデータとしてcalendar.holidayが準備してある。
(calendar -f calendar.holiday -W 365 | grep Japan
または grep Japan /usr/share/calendar/calendar.holiday)
でもどうもこれに誤りがあるようで正しい日付が返らないのだが。
- 敬老の日が09/MonSecond→MonThirdでは?
- 春分/秋分で確定日までが出ない。しかも3/20or21, 9/22or23に固定→実際はそれぞれ4日ほどの幅が出うるそうな…つってもここ十年はなさそうだが
- 5/4が国民の休日に固定→曜日によって呼び名が変わる
- 他の国民の休日(2009/9/22など)に対応してない
#むしろ2,3,4は日本の祝日の制度の方が問題なんだけどさ。
それで今回は自作した、と。そういう運びです。
祝日の扱いはPerlやRubyのカレンダー系のスクリプトも結構苦労してるみたいで、やっぱりというか、年ごとのデータを平打ちしてる人の方が多いです。まぁ、今回のはその元データ(祝日予定日)を算出するためのコードということで、一つ。