簡體   English   中英

使用.Net API讀取Google日歷重復事件

[英]Reading Google Calendar recurring events using .Net API

我正在不同的日歷格式之間進行一些同步,並且Google的日歷提供程序之一是其他提供程序,其他提供程序通過其API以面向對象的方式公開此數據,但在Google中是通過Events。暴露的。

"DTSTART;TZID=Pacific/Auckland:20110629T100000\r\n
DTEND;TZID=Pacific/Auckland:20110629T110000\r\n
RRULE:FREQ=DAILY;COUNT=10;INTERVAL=3\r\n
BEGIN:VTIMEZONE\r\n
TZID:Pacific/Auckland\r\n
X-LIC-LOCATION:Pacific/Auckland\r\n
BEGIN:DAYLIGHT\r\n
TZOFFSETFROM:+1200\r\n
TZOFFSETTO:+1300\r\n
TZNAME:NZDT\r\n
DTSTART:19700927T020000\r\n
RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU\r\n
END:DAYLIGHT\r\n
BEGIN:STANDARD\r\n
TZOFFSETFROM:+1300\r\n
TZOFFSETTO:+1200\r\n
TZNAME:NZST\r\n
DTSTART:19700405T030000\r\n
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU\r\n
END:STANDARD\r\n
END:VTIMEZONE"

有什么辦法可以將其解析為面向對象的格式嗎? 即重復對象? 我在網上看到的所有樣本都在設置這些值,這比讀取值更容易。 歡迎閱讀和閱讀它的任何樣本。

EventEntry.Times是一個集合,因此您必須將其解析為ExtensionCollection對象,然后可以對其進行迭代。

foreach (Google.GData.Calendar.EventEntry ev in calFeed.Entries)
    {
        CalendarEvents ce = new CalendarEvents();

        ce.Title = ev.Title.Text;
        ExtensionCollection<When> v = ev.Times;
        ce.Date = v[0].StartTime;
        ce.Content = ev.Content.Content;
    }

在我的項目中沒有必要進行迭代,但是我認為您可以理解。

試試這個庫: http : //icalparser.sourceforge.net/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM