Правило повторения до использования iCal4J

Я работаю над проектом и мне нужно сгенерировать повторения для диапазона дат с использованием библиотеки iCal4J. По сути, это простое правило повторять еженедельно, каждую пятницу в течение шести месяцев.

Вот что у меня есть:

Recur recur = new Recur("FREQ=WEEKLY;INTERVAL=1;BYDAY=FR;WKST=MO;UNTIL=20170428T003000Z;");

 DateTime startDate = new DateTime("20160727T0030000Z");
 Date endDate = recur.getUntil();
 DateTime baseDate = new DateTime("20160727T003000Z");
DateList dateList = recur.getDates(baseDate, startDate, endDate, Value.DATE_TIME);

Это генерирует еженедельные собрания каждую пятницу в половине полуночи, однако последнее собрание должно быть 27.01.2017, а вместо этого - 20.01.2017.

Одна встреча удаляется. Ps это происходит только в пределах этого диапазона дат (может быть, что-то связанное с Britsh Summer Time BST), однако это будет UTC, поэтому это не должно иметь значения, верно?

Затем, если я изменю свойство UNTIL из правила повторения на 21-01-2017 в 23:59:59, оно будет выбрано.

Какие-либо предложения?

С уважением

1 ответ

Попробуйте: вот пример для моего правила повторения для того же.

Если моя начальная дата - 10/08/2016, а дата - 10/12/2016, то это создаст повторяющиеся даты для всей пятницы, приходящейся между этими двумя датами.

Еженедельное правило повторения

RRULE:FREQ=WEEKLY;BYDAY=FR;INTERVAL=1;UNTIL=20161218T000000Z
RRULE:FREQ=WEEKLY;BYDAY=<Day of week>;INTERVAL=<Every month/with some interval>;UNTIL=<Until Date>

Так что согласно этому ваше правило будет выглядеть так: "RRULE:FREQ=WEEKLY;BYDAY=FR;INTERVAL=1;UNTIL=20170428T003000Z"

Другие вопросы по тегам