Генерация событий на основе шаблона повторения
С помощью Aspose.Email можно генерировать события, используя шаблон повторения. Эта статья объясняет, как это сделать, как сгенерировать следующее событие и получить удобные для пользователя описания элементов. События на основе шаблона повторения календаря MAPI могут быть созданы с использованием Aspose.Email. Следующий фрагмент кода показывает, как генерировать события из шаблонов повторения.
Расчет следующего события или n следующих событий
Чтобы получить “следующее” событие, используйте метод GenerateOccurrences с параметром nNextOccurrences=1. Следующий фрагмент кода показывает, как сгенерировать 20 событий, используя nNextOccurrences = 20. Вывод кода ниже выглядит следующим образом:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
RecurrencePattern recurrencePattern = new RecurrencePattern(); | |
recurrencePattern.StartDate = new DateTime(1997, 9, 10, 9, 0, 0); | |
RecurrenceRule rule = recurrencePattern.RRules.Add(); | |
rule.Frequency = Frequency.Monthly; | |
rule.Count = 20; | |
rule.Interval = 18; | |
rule.ByMonthDay.Add(new int[] { 10, 11, 12, 13, 14, 15 }); | |
DateCollection expectedDates = recurrencePattern.GenerateOccurrences(20); | |
Console.WriteLine("expectedDates.Count = " + expectedDates.Count); | |
foreach (DateTime date in expectedDates) | |
{ | |
Console.WriteLine("DateTime = " + date); | |
} |
Получение удобного для пользователя текста для повторения
Удобный для пользователя текст для правила можно получить с помощью свойства FriendlyText, как показано ниже. Вывод кода будет следующим: “Повторять каждый месяц 1-го и 1-го числа с конца дня(ей) месяца максимально 2 раза.”. Следующий фрагмент кода показывает, как получить удобный для пользователя текст для повторения.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
RecurrenceRule rule = new RecurrenceRule(); | |
rule.Frequency = Frequency.Monthly; | |
rule.Count = 2; | |
rule.ByMonthDay.Add(1); | |
rule.ByMonthDay.Add(-1); | |
Console.WriteLine(rule.FriendlyText); |