2017-09-22 3 views
1

iCal.Netの使用。開始日と終了日に応じて必要なカレンダーオブジェクトのみを含むようにカレンダーを縮小する最も良い方法は何ですか

私が達成しようとしているのは、カレンダーを縮小してインターネット上に送信することです。カレンダー全体を送信する必要はありません。私は一日で何が起こるのか尋ねました。

特定の期間に発生したことのみを送信する必要があります。

Calendar.GetOccurrences(IDateTime startTime, IDateTime endTime) 

は良いスタートしているようだ、私は、実際のCalendarObjectを取得するかどうかはわかりません、またそれは良いアプローチだ場合。

+0

私たちに何を試してみてください。 – dymanoid

+0

@dymanoid私はまだライブラリのソースコードを読んでいませんでしたが、これまでのところ私の解決策を見つけられず、より良い知識を持つ人が明らかな解決策を知っているかどうかは疑問でした。 –

+1

質問を編集して、適切な回答を特定するのに十分な詳細を持つ特定の問題に限定してください。 [ask]も読んでください。 – Enigmativity

答えて

2

これは私が以前に遭遇したことのないユースケースですが、それほど難しいことではありません。私は次のようなことをやろうと思っています:

var relevantEvents = bigCalendar.GetOccurrences(start, end) 
    .Select(o => o.Source) // The parent IRecurrable 
    .Cast<Event>()   // Which is an Event/CalendarEvent 
    .Distinct() 
    .ToList(); 

var smallerCalendar = new Calendar(); 

// I should add an extension method to UniqueComponentList for AddRange() 
foreach (var relevantEvent in relevantEvents) 
{ 
    smallerCalendar.Events.Add(relevantEvent); 
} 
+2

この例をical.net wikiに追加しました:https://github.com/rianjs/ical.net/wiki/Working-with-collections-of-calendar-events#extract-a-range-of-calendar-イベントカレンダーから – rianjs

+0

ありがとう@rianjs!私はこれを試し、あなたに知らせるでしょう。 –

関連する問題