日付表現中の<指定>と iCalendar

昨日の仕様整理と iCalendarとの対応関係についてです。

When.exe Ruby版で拡張した iCalendar の仕様は、

 http://www2u.biglobe.ne.jp/~suchowan/when_exe/When/V.html

の通りです[1]

iCalendar は処理が重いので、実装では、どうしても必要な場合のみ、日付表現を
内部的に iCalendar の書式に変換して iCalendar の機能を利用するようにしました。

そのような場合、繰り返し間隔は、

 PnY → FREQ=YEARLY;INTERVAL=n
 PnM → FREQ=MONTHLY;INTERVAL=n

と変換します、また昨日の、

 <集合>  ::= <要素名> # <要素群>

は、

 BYDAY / <要素名> = <要素群>

などと変換します。

<要素群>の書式は iCalendar のものがそのまま使えるように配慮しました。

JSON では<指定>に使う“{”“}”は“"”で囲われるのでエスケープは不要です。
別途、日付表現をIRIの一部として使用する場合には%エスケープが必要です。

[1] ただし本文の「ユリウス通日」はユリウス通日元期直後の甲子の日からの通日
  と読み替えてください。甲子の日を余り 0 とするための配慮をドキュメントに
  反映していませんでした。

この記事へのコメント

この記事へのトラックバック