RRULE を解析して、繰り返しイベントが有効な月の週を表示しようとしています。RFC2445 ドキュメント ( http://www.ietf.org/rfc/rfc2445.txt ) を見ましたが、それほど明確ではありません。
たとえば、次のルールを知っています。
RRULE FREQ=MONTHLY;INTERVAL=1;BYDAY=TH,FR,WE;BYSETPOS=10,11,12,7,8,9,1,2,3,4,5,6
毎月第1、第2、第3、第4週の水、木、金曜日です。
また
RRULE FREQ=MONTHLY;INTERVAL=1;BYDAY=TU,MO;BYSETPOS=3,4,5,6;
月の第 2 週と第 3 週の月曜日と火曜日です。
また
RRULE FREQ=MONTHLY;INTERVAL=1;BYDAY=TH,WE;BYSETPOS=-1,-2
月の最終週の水曜日と木曜日です。
これらを別のプログラムで生成しましたが、実際にどのように生成したかはわかりません。
したがって、私が抱えている問題は、BYSETPOS が 1 か月の再発週をどのように記述するかを理解することです。最終的な目標は、上記のような RRULE を解析して次のように表示できるようにすることです。
為に: RRULE FREQ=MONTHLY;INTERVAL=1;BYDAY=TH,FR,WE;BYSETPOS=10,11,12,7,8,9,1,2,3,4,5,6
見せる:Thur,Friday,Wed on week:1,2,3,4
為に: RRULE FREQ=MONTHLY;INTERVAL=1;BYDAY=TU,MO;BYSETPOS=3,4,5,6;
見せる:Tues, Monday on week:2,3
為に: RRULE FREQ=MONTHLY;INTERVAL=1;BYDAY=TH,WE;BYSETPOS=-1,-2
見せる:Whu,Wed on last week
最善の解決策は、objective-c の文字列ですが、それが別の C のような言語であるかどうかはわかります。BYDAY を使用した BYSETPOS がどのように機能するかの説明だけでも素晴らしいでしょう。