プログラムでカレンダーにイベントを追加しようとしています。たとえば、2 月の第 1 月曜日ごとに、イベントを毎年繰り返すようにしたいと考えています。私が使用しているルールは次のとおりです。
FREQ=YEARLY;BYDAY=1MO;BYMONTH=2;INTERVAL=1;COUNT=11;
問題は、1 月に開始日を指定してイベントを作成し、毎年 1 月に繰り返すように設定すると、正常に機能することです。しかし、開始日を 2 月以外に設定し、同じルールで繰り返すように設定すると、月曜日ではなく別の日に繰り返されます。その日は、イベントの開始日である月によって異なります。うるう年は日が1日変わるので、日数を数えているようです。
アップデート:
DTSTART
上記のようにイベントを作成すると、次のことが起こることに気付きました: たとえば、2 月にイベントを作成し、3 月に繰り返すように設定した場合、ルールは、イベントの月から月の日数を取得します。セット(2月)。したがって、2 月にイベントを作成し、3 月の最終日に繰り返すように設定すると、3 月 28 日ごと、または閏年の 29 日ごとに繰り返されます (予想される 31 日ではなく)。
別の例: 2013 年 1 月にイベントを作成しDTSTART
、2 月の第 1 月曜日ごとに繰り返すように設定します。2013 年 1 月の最初の月曜日に対応する 2013 年 2 月の日付 (この場合は 2 月 7 日) にイベントを作成します (1 月 7 日は 2013 年 1 月の最初の月曜日であるため)。毎年、このイベントは 2 月の第 1 木曜日に繰り返されます。