1

使用 iCal.Net。

我想要实现的是缩小日历以通过互联网发送它,所以我不必发送整个日历,如果有人问我会发生什么,这将是浪费(考虑到它会变大)在一天之内。

我们应该只发送给定时间段内发生的事情。

Calendar.GetOccurrences(IDateTime startTime, IDateTime endTime)

似乎是一个好的开始,我不确定如何获得实际的 CalendarObject ,也不确定它是否是好方法。

4

1 回答 1

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);
}
于 2017-09-22T14:51:56.367 回答