3

我尝试使用某种范围[Start]

var calendar = outlookApplication.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar);

if (calendar == null || calendar.Items == null)
{
   return null;
}

DateTime appointmentStart = new DateTime(2013, 03, 25, 10, 0 ,0);

string filter = string.Format("[Start] > '{0}' And [Start] < '{1}'", appointmentStart.AddMinutes(-1).ToString("g"), appointmentStart.AddMinutes(+1).ToString("g") );
var calendarItems = calendar.Items.Restrict(filter);

AppointemtItem在. Outlook_ 25.03.2013_ 10:00:00所以我正在等待得到这个 AppointmentItem 作为结果calendar.Items.Restrict(filter);

但我变成了 2 个约会项目:

  • 正确的

  • 还有一个来自 05.04.2012 - 从 2012 年 45 日(不是 2013 年)开始 10:30:00 和结束 10:40:00

我不明白 05.04.2012 10:30:00 - 10:40:00 有什么关系

过滤 > 25.03.2013 09:59 和 < 25.03.2013 10:01?

4

2 回答 2

2

使用Items.IncludeRecurrences属性 - MSDN:IncludeRecurrences 属性

于 2013-03-21T13:58:56.487 回答
0

AppointmentItem从 05.04.2012 开始是经常性的。

我不知道为什么它会在之后显示,calendar.Items.Restrict(filter)但我的解决方案是检查IsRecurring属性。

于 2013-03-21T10:27:34.827 回答