Правило повторения iCal для двухмесячного периода оплаты - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь создать правило повторения, совместимое с iCal, которое должно отражать дни оплаты для людей, которым платят два раза в месяц.Подробную информацию о правилах повторения можно найти в RFC .

. Вот правила:

  • Физическое лицо получает оплату 15-го и последнего днямесяц.
  • В случае, если 15-й или последний день месяца наступает в выходные дни, им нужно заплатить в пятницу до этого.

Что у меня такfar:

[
"RRULE:FREQ=MONTHLY;BYMONTHDAY=15;BYDAY=MO,TU,WE,TH,FR", // this will select the 15th if it's not on a weekend 
"RRULE:FREQ=MONTHLY;BYSETPOS=-1;BYDAY=MO,TU,WE,TH,FR;", // this correctly selects the last weekday of the month
]

Проблема этого подхода в том, что если 15-е число выпадает на выходные, событие пропускается.

Я не уверен, что это то, что можно смоделировать.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 24 февраля 2019

Это обсуждение решило проблему.

Для 15-го я нуждался в следующем правиле:

RRULE:FREQ=MONTHLY;INTERVAL=1;BYSETPOS=-1;BYMONTHDAY=13,14,15;BYDAY=MO,TU,WE,TH,FR

То есть последний рабочий день перед 15Я должен был добавить 13,14,15, поскольку это, по сути, единственно возможные даты, которые я могу встретить.(В худшем случае это будет 15-е воскресенье, поэтому предыдущей пятницей будет 13-е

Два правила вместе дали мне то, что мне было нужно!

...