ISO 8601 Повторяющийся интервал - PullRequest
       65

ISO 8601 Повторяющийся интервал

14 голосов
/ 07 сентября 2011

Википедия приводит пример ISO 8601 пример повторяющегося интервала :

R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M

Вот что это значит:

  • R5 означает, что интервал после косой черты повторяется 5 раз.
  • 2008-03-01T13:00:00Z означает, что интервал начинается с данной даты и времени.
  • P1Y2M10DT2H30M означает, что интервал длится
    • 1 год
    • 2 месяца
    • 10 дней
    • 2 часа
    • 30 минут

Моя проблема в том, что я не знаю точно, что здесь повторяется. Есть ли повторение произойдет сразу после окончания интервала? Могу ли я указать, что каждый понедельник что-то происходит с 13:00 до 14:00?

1 Ответ

8 голосов
/ 17 сентября 2011

Сам стандарт не проясняет, но единственное очевидное толкование здесь состоит в том, что интервал повторяется вплотную.Таким образом, этот повторяющийся интервал:

R2/2008-03-01T13:00:00Z/P1Y2M10DT2H30M

будет эквивалентен следующим неповторяющимся интервалам:

2008-03-01T13:00:00Z/P1Y2M10DT2H30M
2009-05-01T15:30:00Z/P1Y2M10DT2H30M

(Примечание: мое чтение состоит в том, что число повторений включает первое вхождение)

Невозможно представить «каждый понедельник с 13:00 до 14:00» в стандарте ISO 8601, но это естественно сделать для VEVENT в формате iCalendar.(Если бы вы могли сделать это полностью в рамках ISO 8601, то это привело бы к большому количеству дальнейших запросов функций)

...