дата окончания (UNTIL) исключается при использовании google-rf c -2445 createDateTimeIterator для создания диапазона дат - PullRequest
0 голосов
/ 11 апреля 2020

Мне нужно знать, как не допустить, чтобы UNDIL или дата окончания были исключены из диапазона дат, создаваемого в этом - { ссылка }

Пожалуйста, помогите.

Я пытаюсь получить диапазон дат, используя ответ, приведенный в приведенной выше ссылке, но он исключает дату окончания каждый раз.

StartDate = 2020-04-21T00:00:00.000+05:30;
RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20200428

он вернет мне результат ниже:

2020-04-20T18:30:00.000Z
2020-04-21T18:30:00.000Z
2020-04-22T18:30:00.000Z
2020-04-23T18:30:00.000Z
2020-04-24T18:30:00.000Z
2020-04-25T18:30:00.000Z
2020-04-26T18:30:00.000Z
2020-04-27T18:30:00.000Z

1 Ответ

0 голосов
/ 12 апреля 2020

Ваша дата и время начала, по-видимому, 2020-04-20T18: 30: 00.000Z, несмотря на ваш псевдокод выше. Потому что это то, что вы перечислили в качестве результатов: повторения в 18.30.

При ежедневном повторении в это время 2020-04-28T18: 30: 00.000Z будет ПОСЛЕ 2020-04-20T00: 00: 000Z.

Так что сделайте дату начала или дату / время и дату окончания или дату / время согласованными. От https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html он говорит:

Часть правила UNTIL определяет значение DATE или DATE-TIME, которое ограничивает правило повторения включающим образом. Если значение, указанное в UNTIL, синхронизируется с указанным повторением, этот DATE или DATE-TIME становится последним случаем повторения. Значение части правила UNTIL ДОЛЖНО иметь тот же тип значения, что и свойство DTSTART. Кроме того, если свойство «DTSTART» указано как дата с местным временем, то часть правила UNTIL ДОЛЖНА также указываться как дата с местным временем. Если свойство «DTSTART» указано как дата с UT C времени или дата с местным временем и ссылкой на часовой пояс, то часть правила UNTIL ДОЛЖНА быть указана как дата с UT C времени.

замените ДО 2020-04-28T18: 30: 00.000Z, если UT C запланировано время, или 2020-04-28T18: 30: 00.000, если запланировано плавающее время.
В основном DTSTART И UNTIL должны совпадать.

...