iCalendarの読み方
こちらのサイトで詳しい解説が掲載されていました。
iCalendar 仕様
iCalendar コンテンツの作成にとりあえず役立ちそうな情報の抜書き。(正確な仕様は RFC にあたること)
非常にありがたい情報でした!
休日を取得したくて、Appleが公開しているiCalendarを読み込んで処理することを考えました。
↓こちらがそのファイルのリンクになります。
http://ical.mac.com/ical/Japanese32Holidays.ics
このicsファイルを読み込んで、必要な情報を得るわけですが…。
DTSTARTの日付と、RRULEで記述されている特殊な日付で事足りるようです。
このうちDTSTARTは4桁の西暦と2桁の月、2桁の日付からなる8桁の数値というわかりやすいものでしたが、RRULEがクセものでした。
BYMONTH=10;BYDAY=2MOとあった場合、10月の2週目の月曜日、となります。
MOは曜日で、SU,MO,TU,WE,TH,FR,STの7種類ありえますが、こと休日に限っていえばMOがほとんどでまれにTUってとこでしょうか。
このBYDAYがない場合があるのです。BYMONTHまでしかないという記述で、このときはDTSTARTの日付部分が有効になるみたいです。
毎年決まった日付が休みの場合に用いられる記述のようです。
試行錯誤を繰り返しましたが、なんとか休日を取得できるようになりました…!