2015-04-20 7 views
1

Я создаю приложение календаря, которое должно быть жалобой с rfc-2445 specification. У меня было несколько вопросов с Весь день событий здесь, но теперь это было решено, вы можете увидеть вопрос SO here, но это заставило меня задать следующий вопрос.rfc2445, как хранить все дневные мероприятия?

Дело в том, что когда я выбираю Весь день событие, например, с 20-10-2015 до 21-10-2015 (продолжительность мероприятия - 2 дня), на самом деле мне нужно создать запись в БД с 20- 10-2015 до 22-10-2015, иначе он будет показан как однодневное мероприятие.

И мой вопрос имеет две части:

  1. ли выше право и в соответствии со стандартом RFC-2445?
  2. Должен ли я хранить такое событие в БД, как от 20-10-2015 до 22-10-2015 и когда показывают свои детали к конечному пользователю следует уменьшить один день с даты окончания или сохранить его в 20-10 -2015 до 21-10-2015 и увеличить на один день по адресу дата окончания при рендеринге внутри календаря.

спасибо.

ответ

2

Свойство DTEND соответствует не включено завершение мероприятия, поэтому, ваш приведенный выше пример является правильным

См http://tools.ietf.org/html/rfc5545#section-3.6.1, который определяет:

Свойство «DTSTART» за «VEVENT» указывает включительно начало мероприятия. Для повторяющихся событий он также определяет самый первый экземплярв наборе повторений. Свойство «DTEND» для компонента календаря «VEVENT» указывает не включительный конец события.

, а также имеет пример события многодневной AllDay:

Ниже приведен пример «VEVENT» календарный компонент используется для представления многодневного события запланировано с 28 июнем 2007 до 8 июля 2007 года включительно. Обратите внимание, что свойство «DTEND» имеет значение , установленное до 9 июля 2007 года, поскольку свойство «DTEND» указывает на не включенный конец события .

BEGIN:VEVENT 
    UID:[email protected] 
    DTSTAMP:20070423T123432Z 
    DTSTART;VALUE=DATE:20070628 
    DTEND;VALUE=DATE:20070709 
    SUMMARY:Festival International de Jazz de Montreal 
    TRANSP:TRANSPARENT 
    END:VEVENT 

Вы бы заметили, что я ссылаюсь на RFC5545, который Снятые с RFC2445.

+0

спасибо. Наконец, я понял эту идею. – Anatoly

+0

Привет, я вернулся к этому проекту, забыл, что я уже спросил об этом, и на него ответил, спросила еще раз и нашла свой вопрос. Я снова получил эту идею, кроме одного момента, если у нас есть время в DTSTART и DTEND, а DTEND является эксклюзивным, означает ли это, что последняя секунда мероприятия формально не является частью события? Например, DTSTART: 20151223T060000Z DTEND: 20151223T070000Z' Еще раз спасибо. – Anatoly