Определить событие на весь день из Outlook 2010 - PullRequest
0 голосов
/ 09 августа 2011

Я пытаюсь определить, является ли мое событие событием на весь день в моем файле ICS, экспортированном из Outlook 2010.

Я скопировал и вставил свой файл, который содержит 2 события ВСЕ дня ... любые мыслибыть оцененным

BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20110809T033932Z
DESCRIPTION:This will be my description for meeting with Justin\n
DTEND;VALUE=DATE:20110809
DTSTAMP:20110809T040222Z
DTSTART;VALUE=DATE:20110808
LAST-MODIFIED:20110809T034001Z
LOCATION:At Starbucks
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Meet with Justin
TRANSP:TRANSPARENT
UID:040000008200E00074C5B7101A82E00800000000403EC9560B56CC01000000000000000
    010000000C69C80C5784EBC418582D51931DC82EA
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
    N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
    rsion 08.01.0240.003">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
    rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calib
    ri">This will be my description for meeting with Justin</FONT></SPAN><SPAN
     LANG="en-us"></SPAN></P>\n\n</BODY>\n</HTML>
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:FALSE
X-MS-OLK-CONFTYPE:0
END:VEVENT
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20110809T040132Z
DESCRIPTION:ALL DAY DESCRIPTION\n
DTEND;VALUE=DATE:20110810
DTSTAMP:20110809T040222Z
DTSTART;VALUE=DATE:20110809
LAST-MODIFIED:20110809T040159Z
LOCATION:ALL DAY LOCATION
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:ALL DAY EVENT TITLE
TRANSP:TRANSPARENT
UID:040000008200E00074C5B7101A82E0080000000080148F680E56CC01000000000000000
    01000000088619AAED47E4F43A2AC4420C15E7309
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
    N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
    rsion 08.01.0240.003">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
    rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calib
    ri">ALL DAY DESCRIPTION</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>\n\n</B
    ODY>\n</HTML>
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:FALSE
X-MS-OLK-CONFTYPE:0
END:VEVENT

Ответы [ 2 ]

2 голосов
/ 09 августа 2011

Как правило, если не указано время .... если это DTSTART; VALUE = DATE: 20110808, это целый день, но DTSTART также может быть:

DTSTART: 19980118T073000Z DTSTART; VALUE = ДАТА-ВРЕМЯ: 19980101T050000Z DTSTART; TZID = Австралия / Сидней: 20080801T183000

У него может быть ДЛИТЕЛЬНОСТЬ, а НЕ КОНЕЦ (не должно быть обоих)

Если у него есть Конечная дата, а конечная дата - полночь (начало дня), а DTSTART - также полночь (предыдущий или более ранний день), то концептуально это также целый день в этом часовом поясе (хотя два неполных дня в других часовых поясах). ).

По сути, это должно было быть представлено как VALUE = DATE, а не VALUE = DATE-TIME. но что поделаешь, приходится иметь дело с тем, что появляется в файлах.

Продолжительность, если у него есть что-то после P, до T и ничего после T, то это также целый день

P1D не: PT15M

DTSTART: http://tools.ietf.org/html/rfc5545#section-3.8.2.4

Длительность: http://tools.ietf.org/html/rfc5545#section-3.8.2.5

1 голос
/ 09 августа 2011

См. предыдущее обсуждение на эту тему. Обычно DTSTART - это дата (без времени), а DTEND - следующая дата (без времени), поэтому это событие на весь день.

...