2017-01-10 2 views
0

Рассмотрите следующее событие повтора в Календаре Google с помощью RRULE, как указано ниже.Значение UNTIL в RRULE при прерывании повторного события

BEGIN:VEVENT 
DTSTART;TZID=Asia/Calcutta:20170111T020000 
DTEND;TZID=Asia/Calcutta:20170111T050000 
RRULE:FREQ=DAILY;UNTIL=20170116T203000Z 
DTSTAMP:20170110T150957Z 
CREATED:20170110T150942Z 
DESCRIPTION: 
LAST-MODIFIED:20170110T150942Z 
LOCATION: 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:Repeat event test 
TRANSP:OPAQUE 
END:VEVENT 

Если это событие теперь отредактирован, нарушая ряд рекуррентное на две части (Edit это и будущие события) на говорят, 14 января, то RRULE этого события изменяется на следующий

RRULE:FREQ=DAILY;UNTIL=20170113T182959Z 

Почему значение UNTIL установлено на 1 секунда меньше значения RECURRENCEID/DTSTART повторения 14 января вместо того, чтобы установить значение DTSTART для повторения 13 января. Существует ли стандарт, согласно которому значение UNTIL в RRULE в таких случаях должно быть установлено таким образом (т.е. на 1 секунду меньше)?

ответ

1

Вы не найдете никаких упоминаний об этом стандарте. https://tools.ietf.org/html/rfc5545#section-3.3.10 упоминает, как

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

но не требует, чтобы значение было синхронизировано с повторением, и не упоминается, что оно должно быть на 1 секунду меньше.

Я подозреваю, что это было просто удобством для разработчика, поскольку дата отсечения - это 14-й, который он манипулирует, но предыдущий экземпляр должен был быть рассчитан.

Смежные вопросы