现在我正在使用google-rfc-2445库来评估重复发生的事件,并生成实际日期,例如知道何时会发生由以下RRULE定义的事件:RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
我正在使用双周库来生成 *.ics 文件。实际上,它与iCal4j相同,但API更易于使用。
我看到两个库在某种程度上都具有可互换的功能,所以我的问题,我可以将单个库(iCal4j/双周)用于这两个任务吗?生成重复事件并导出/导入 *.ics 文件?
google-rfc-2445主要侧重于评估重复规则,而双周刊和iCal4j则专注于处理整个iCalendar文件。
如果您的目标是生成iCalendar文件,则应使用每两周一次或iCal4j。 如果您需要循环访问重复规则中的日期,请使用 google-rfc-2445。 如果您只需要创建重复规则,则不需要 google-rfc-2445。
每两周一次允许您循环访问定期规则中的日期(请参阅下面的代码)。 它使用google-rfc-2445来做到这一点。
ICalendar ical = ...
VEvent event = ical.getEvents().get(0);
RecurrenceRule rrule = event.getRecurrenceRule();
Iterator<Date> it = rrule.getDateIterator(event.getDateStart().getValue());