В чем разница между iCal4j/biweekly и google-rfc-2445?

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

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

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


person Anatoly    schedule 26.01.2016    source источник


Ответы (1)


google-rfc-2445 в первую очередь ориентирован на оценку правил повторения, а раз в две недели и iCal4j фокусируется на работе с файлами iCalendar в целом.

Если вашей целью является создание файлов iCalendar, вам следует использовать biweekly или iCal4j. Если вам нужно перебрать даты, указанные в правиле повторения, используйте google-rfc-2445. Если вам просто нужно создать правило повторения, вам не нужен google-rfc-2445.

biweekly позволяет перебирать даты в правиле повторения (см. код ниже). Для этого используется google-rfc-2445.

ICalendar ical = ...
VEvent event = ical.getEvents().get(0);
RecurrenceRule rrule = event.getRecurrenceRule();
Iterator<Date> it = rrule.getDateIterator(event.getDateStart().getValue());
person Michael    schedule 27.01.2016