重复规则直到使用iCal4J

时间:2016-07-21 15:14:01

标签: java recurrence ical4j rfc2445

我正在开发一个项目,需要使用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);

这会产生每周五午夜的每周会议,但最后一次会议应该是在2017年1月27日,而不是2017年1月20日。

一次会议被取消。 Ps只发生在这个日期范围内(可能与Britsh夏令时BST有关),但它被设置为UTC因此它应该无关紧要吗?

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

有什么建议吗?

此致

1 个答案:

答案 0 :(得分:1)

尝试一下:以下是我的重复规则的示例。

  

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

每周重复规则

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"