获取Outlook NTH(olRecursMonthNth)约会项目重新出现

时间:2015-01-07 22:53:54

标签: c# outlook-addin

我正在尝试将olRecursMonthNth重新发生并将其写入列表。

我可以使用以下代码提取标准的每月重复次数 -

    private static List<DateTime> GetMonthlyRecurrence(RecurrencePattern pattern)
    {
        List<DateTime> occurrences = new List<DateTime>(pattern.Occurrences);
        DateTime startDate = new DateTime(pattern.PatternStartDate.Year, pattern.PatternStartDate.Month, pattern.PatternStartDate.Day, pattern.StartTime.TimeOfDay.Hours, pattern.StartTime.TimeOfDay.Minutes, 0);
        for (int counter = 0; counter < pattern.Occurrences; counter++)
        {
            if (pattern.Interval > 0)
            {
                occurrences.Add(startDate);
                startDate = startDate.AddMonths(pattern.Interval);
            }
        }
        return (occurrences);
    }

但是,如果约会发生在每个月的第一个星期一,那么我正在努力解决这个问题。感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您别无选择,只能在代码中明确计算每种模式类型的实例。

如果使用Redemption是一个选项,则其RDORecurrencePattern对象允许您将日期(如Outlook)或整数索引传递给GetOccurence方法 - 这样您就可以循环遍历所有重复实例。

另请注意,对于没有结束日期的约会,您的代码将会中断(重复实例的数量是无限的)。