我正在开发一个项目,需要使用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),那么它就会被拾取。
有什么建议吗?
此致
答案 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"