3

私はRFC5545を読んでいて、一連のオカレンスを正しく見つける方法を決定しようとしています。毎週のルール=2(隔週)があるとしましょう。また、火、水、木にBYDAYルールパートを指定しました。開始日が2011-04-07(木)で、終了日が2011-04-27(水)であると仮定します。明らかに日付よりも重要度が低いことを無視すると、私のオカレンスセットには次のものが含まれると思います:2011-04-07、2011-04-12、2011-04-13、2011-04-21、2011-04-26、2011-04- 27。

私を失望させているのは、RFCからの次のステートメントです。「WKSTルールの部分は、平日が始まる日を指定します。有効な値は、MO、TU、WE、TH、FR、SA、およびSUです。 「RRULE」の間隔が1より大きく、BYDAYルール部分が指定されています。」

したがって、私のWKST = MOの場合、上記のステートメントから、週は開始日からではなく、WKSTから始まるという意味がわかります。つまり、開始日(この場合は木曜日)に基づく週を使用する代わりに、実際にWKSTから開始して、その週(月〜日)に含まれるオカレンスとそのWKSTから隔週のオカレンスを特定する必要があります。 。したがって、計算の目的で、私の開始日は実際には2011-04-04になります。それは開始日の前にあるので、私は開始日に先にジャンプしますが、私は月曜日と日曜日の週に固執します。つまり、私のオカレンスセットは実際には2011-04-07、2011-04-19、2011-04-20、2011-04-21です。それは私の元のセットとは大きく異なります。

さらに、これが適切な計算方法である場合、それは、1間隔を超える他の周波数のルール状況を拡張する場合にも、開始日ではなく、その期間の開始時に「開始」する必要があることを意味します。MONTHLYには、開始日の月の1日から最後の日が含まれますか。YEARLYには、開始日の1月1日から12月31日までが含まれますか?

そこにiCalendarの第一人者がいることを願っています...ここのロジックに頭を悩ませることはできません。ありがとう。

更新:いくつかの.icsファイルを作成し、Googleカレンダーにインポートしました。グーグルがこれらを正しく解釈していると仮定すると、INTERVAL> 1でMONTHLYを展開すると、イベントの開始日から始まる月ではなく、月の最初から最後の日が使用されることを確認できます。YEARLYルールは同じように機能し、年は1月1日から12月31日までです。私が当初期待していたことではありませんが、うまくいけば、これは他の誰かを助けることができます。

4

1 に答える 1

3

私が教祖としての資格があるかどうかはわかりませんが、私は確かにすべてのRRULEを通り抜けて戦いました。

私の理解では、もちろん、毎週のルールはWKSTに従って週の初めから開始する必要があります(その範囲内で、開始日によって一部の日付が切り捨てられる場合があります)。

したがって、元の日付のセットが必要な場合は、WKST=THと言う必要があります。

グーグルがすでにそれをすべて理解している人々を持っていると信じるなら、あなたの理解をチェックする一つの方法は、これらのルールでいくつかのicsファイルをハンドコーディングしてグーグルカレンダーにインポートし、グーグルが生成する日付を確認することです。

また、この表は定期的なルールに役立つ場合があります。また、フッターのページの下部には、icsリソースへのリンクがいくつかあります。

http://icalevents.com/2447-need-to-know-the-possible-combinations-for-repeating-dates-an-ical-cheatsheet/

于 2011-04-22T07:53:14.920 に答える