从重复模式生成发生次数
Contents
[
Hide
]
使用 Aspose.Email,可以通过重复模式生成出现。本文解释了如何、以及如何 生成下一个出现 和 获取用户友好的项目描述. 可以使用 Aspose.Email 从 MAPI 日历重复模式生成出现。以下代码片段演示了如何从重复模式生成出现。
计算下一个出现或 n 个后续出现
为获取“下一个”出现,使用 GenerateOccurrences 方法并将参数 nNextOccurrences = 1。以下代码片段演示了如何通过将 nNextOccurrences = 20 来生成 20 次出现。下面代码的输出如下:

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 属性获取规则的用户友好文本,如下所示。代码输出将为:"每月在第 1 天和倒数第 1 天重复,最多出现 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());