Генерация повторений из шаблона повторения

С Aspose.Email можно генерировать появления, используя шаблон повторения. Эта статья объясняет как, как сгенерировать следующее появление и получить удобные для пользователя описания элементов. Появления из шаблона повторения календаря MAPI можно генерировать с помощью Aspose.Email. Следующий фрагмент кода показывает, как генерировать появления из шаблонов повторения.

Вычислить следующее появление или n следующих появлений

Чтобы получить "next" появление, используйте метод GenerateOccurrences с параметром nNextOccurrences = 1. Следующий фрагмент кода показывает, как сгенерировать 20 появлений, используя nNextOccurrences = 20. Вывод кода ниже выглядит следующим образом:

todo:image_alt_text

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

CalendarRecurrence recurrencePattern = new CalendarRecurrence();

recurrencePattern.setStartDate(sdf.parse("1997-09-10 09:00:00"));
RecurrenceRule rule = recurrencePattern.getRRules().add();
rule.setFrequency(Frequency.Monthly);
rule.setCount(20);
rule.setInterval(18);
rule.getByMonthDay().add(new int[] { 10, 11, 12, 13, 14, 15 });
DateCollection expectedDates = recurrencePattern.generateOccurrences(20);
System.out.println("expectedDates.Count = " + expectedDates.size());
for (int i = 0; i < expectedDates.size(); i++) {
    System.out.println("DateTime = " + sdf.format(expectedDates.getItem(i)));
}

Получить удобный для пользователя текст для повторения

Текст, удобный для пользователя, для правила можно получить, используя свойство FriendlyText, как показано ниже. Вывод кода будет: "Повторяется каждый месяц в первый и первый день с конца месяца, максимум 2 повторения.". Следующий фрагмент кода показывает, как получить удобный для пользователя текст для повторения.

RecurrenceRule rule = recurrencePattern.getRRules().add();
rule.setFrequency(Frequency.Monthly);
rule.setCount(2);
rule.getByMonthDay().add(1);
rule.getByMonthDay().add(-1);
System.out.println(rule.getFriendlyText());