Какая разница между iCal4j/biweekly и google-rfc-2445?

Прямо сейчас я использую библиотеку google-rfc-2445, чтобы оценивать повторяющиеся события и генерировать фактические даты, например, чтобы знать, когда произойдет событие, определенное следующим RRULE: RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1

Я использую библиотеку раз в две недели для создания файлов *.ics. На самом деле он делает то же самое, что и iCal4j, но API гораздо проще в использовании.

Я вижу, что обе библиотеки имеют на одном уровне взаимозаменяемые функции, поэтому мой вопрос, могу ли я использовать одну библиотеку (iCal4j/biweekly) для обеих задач? Создавать повторяющиеся события и экспортировать / импортировать файлы *.ics?

1 ответ

Решение

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());
Другие вопросы по тегам