Можно ли определить правило (RFC5545) для события, которое повторяется каждые 2 недели от начального дня / месяца до конечного дня / месяца в каждом году?

Пример:

Повторяйте каждую вторую неделю по понедельникам каждый год с 15 января по 10 мая.

1 ответ

Решение

Я так не думаю. Это самое близкое, что вы можете получить ИМО:

DTSTART;VALUE=DATE:20160115
RRULE:FREQ=YEARLY;BYWEEKNO=3,5,7,9,11,13,15,17,19;BYDAY=MO

К сожалению, в определенные годы этот показатель увеличится на 13 или 14 января, что также означает, что все другие экземпляры в этом году будут отключены на одну неделю (см. Первые 100 экземпляров). Я думаю, что есть несколько дат, для которых это было бы правильно, хотя (потому что определенные дни в году всегда находятся в одной и той же календарной неделе).

Единственный способ сделать это, если начальная и конечная даты диапазона соответствуют началу и концу месяца.

То есть, чтобы расширить мероприятие до каждого второго понедельника с 1 января по 31 мая каждого года, вы можете сделать это:

DTSTART;VALUE=DATE:20160101
RRULE:FREQ=YEARLY;BYMONTH=1,2,3,4,5;BYDAY=MO;BYSETPOS=1,3,5,7,9,11,13,15,17,19,21,23,25,27

Вот первые 100 экземпляров этого правила. Хотя некоторые реализации RRULE могут не поддерживать это должным образом.

Другие вопросы по тегам