У меня проблемы с пониманием rfc5545, касающихся until
и count
. Насколько я понимаю, UNTIL и COUNT не могут находиться в одном и том же повторяющемся правиле в соответствии с этой частью RFC:
Имя значения: RECUR
Назначение: этот тип значения используется для идентификации свойств, содержащих спецификацию правила повторения.
Формальное определение: Тип значения определяется следующей нотацией
:recur = "FREQ"=freq *( ; either UNTIL or COUNT may appear in a 'recur', ; but UNTIL and COUNT MUST NOT occur in the same 'recur' ...
Далее в RFC это сказано:
Если указано несколько частей правила BYxxx, то после оценки указанных частей правила FREQ и INTERVAL части правила BYxxx применяются к текущему набору оцениваемых вхождений в следующем порядке: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, BYHOUR, BYMINUTE , ПО СЕКУНДУ и ПОСЕТИТЬ; затем оцениваются COUNT и UNTIL.
Этот последний абзац, кажется, подразумевает, что COUNT и UNTIL могут находиться в одном и том же RRULE.
Когда я проверяю библиотеки, которые реализуют генератор правил и синтаксический анализ, нет проверки, которая гарантирует, что COUNT и UNTIL не находятся в одном и том же повторении.
Какова общая реализация, которую все обычно делают с этим? Должны ли мы игнорировать эту проверку и просто использовать параметр UNTIL, когда есть COUNT и UNTIL (или наоборот)? Что именно RFC означает в отношении параметра COUNT и UNTIL?