SSブログ

RECUR型の残り [iCalendar]

RECUR型のルールについて一通り見てきましたが、さらに文章は続いています

ルールに従った際に発生するありえない日付け(2月30日とか)やローカル時刻(例が理解できません・・・)は無視し(MUST)、繰り返しの数としてカウントしない(MUST NOT)。

繰り返しのデータについて、開始日時は「DTSTART」で決まるとの事。例えば、「FREQ=YEARLY;BYMONTH=1」に日付の情報は無いが、「DTSTART」から決める事ができます・・。と言う理解が合っていれば、「DTSTART」は設定が必須なんですかね・・?

「FREQ」よりも大きい期間を示す「BYxxx」ルールは一般的には頻度を下げたり制限する方向に働き、「FREQ」よりも短い期間を示す「BYxxx」ルールは繰り返し回数を増やす方向に働く。

「BYxxx」付き記載「BYxxx」が無い場合「BYxxx」がある場合
FREQ=DAILY;BYMONTH=1全ての日1月のすべての日
FREQ=YEARLY;BYMONTH=1,2年に1回年に1月、2月の2回


「BYxxx」ルールが複数指定されている場合の評価順は下記の通り。

  1. 「FREQ」もしくは、「INTERVAL」の評価
  2. 「BYMONTH」「BYWEEKNO」「BYYEARDAY」「BYMONTHDAY」「BYDAY」「BYHOUR」「BYMINUTE」「BYSECOND」「BYSETPOS」の順で評価
  3. 「COUNT」「UNTIL」の評価


続いて、「FREQ」ルールと「BYxxx」ルールを同時に使った際の頻度の増減関係の表が示されています。増減はともかく、利用不可のパターンもいくつか示されているので、そこだけ抜粋しておきます。

  • 「BYWEEKNO」は「FREQ=YEARLY」のみで使用可
  • 「BYYEARDAY」は「FREQ=DAILY, WEEKLY, MONTHLY」で使用不可
  • 「BYMONTHDAY」は「FREQ=WEEKLY」で使用不可


続いて、以下の例が載っています。この例をみる限り、「RRULE」はプロパティの名前の様ですね。「RRULE」プロパティでデータの繰り返しルールを指定するのでしょう。

DTSTART;TZID=America/New_York:19970105T083000
RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;BYMINUTE=30


このルールは「2年(隔年)毎の(FREQ=YEARLY;INTERVAL=2)、1月(BYMONTH=1)の毎日曜日(BYDAY=SU)の午前8時30分00秒と午前9時30分00秒(BYHOUR=8,9;BYMINUTE=30)」に発生することを示しています。秒数は「BYSECOND」が指定されていないので、「DTSTART」プロパティの値から取ってきたそうです。同様に「BYMINUTE」「BYHOUR」「BYDAY」「BYMONTHDAY」「BYMONTH」が指定されていない場合は「DTSTART」プロパティから適宜取ってくるそうです。

後、時間の話(ローカルタイムとかタイムゾーンの話)が出てますね。こちらはまたの機会に取り上げることにします・・。

「content value encoding」は無いとのこと。なんのこっちゃ・・。3.3.11参照とのことなので、そちらを見る時に見ときましょう。





ブログを作る(無料) powered by SSブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。