0

我正在做一个项目,需要使用 iCal4J 库为某个日期范围生成重复。基本上,这是一个简单的 RRule,每周重复一次,每周五重复一次,持续六个月。

这就是我所拥有的:

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 这只发生在这个日期范围内(可能与英国夏令时 BST 有关),但是它被设置为 UTC,因此它应该没关系吧?

然后,如果我在 23:59:59 将 UNTIL 属性从重复规则更改为 21-01-2017,那么它就会被拾取。

有什么建议么?

问候

4

1 回答 1

1

试试看:这是我的重复规则的示例。

如果我的开始日期是 2016 年 8 月 10 日,日期是 2016 年 10 月 12 日,那么这将为这两个日期之间的所有星期五创建重复日期。

每周重复规则是

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"

于 2016-09-23T09:02:30.467 回答