我为了测试 google-rfc-2445(IETF RFC 2445 iCalendar 的 Java 实现)的性能而运行了许多 RRULEs。
我发现在某些情况下,返回的列表中包含了开始日期。
这个测试非常简单:
工厂返回的列表返回此列表。
第一个日期是开始日期,它是一个不应该存在的星期六。 RRULE 中还包含 COUNT=10,为什么要返回 11?
我发现在某些情况下,返回的列表中包含了开始日期。
这个测试非常简单:
private static void runGoogleTests() throws ParseException
{
DateTimeZone dtz = DateTimeZone.UTC;
DateTime dtStart = new DateTime("2014-11-22T00:00:00Z", dtz);//SATURDAY
DateTimeIterable dti = DateTimeIteratorFactory.createDateTimeIterable("RRULE:FREQ=WEEKLY;COUNT=10;BYDAY=MO", dtStart, dtz, true);
System.out.println("Size of iterable = " + Iterators.size(dti.iterator()));
for(DateTime dateTime : dti)
{
System.out.println(dateTime);
}
}
工厂返回的列表返回此列表。
第一个日期是开始日期,它是一个不应该存在的星期六。 RRULE 中还包含 COUNT=10,为什么要返回 11?
Size of iterable = 11
2014-11-22T00:00:00.000Z
2014-11-24T00:00:00.000Z
2014-12-01T00:00:00.000Z
2014-12-08T00:00:00.000Z
2014-12-15T00:00:00.000Z
2014-12-22T00:00:00.000Z
2014-12-29T00:00:00.000Z
2015-01-05T00:00:00.000Z
2015-01-12T00:00:00.000Z
2015-01-19T00:00:00.000Z
2015-01-26T00:00:00.000Z
有人使用Google-rfc-2445遇到过这个问题吗?
我在项目页面上发布了这个问题,但那里很安静。 链接到Google-rfc-2445页面上的问题
FREQ=WEEKLY;COUNT=10;BYDAY=MO;DTSTART=20150301
:http://jakubroztocil.github.io/rrule/ 它会给我确切的10次出现,而不计算DTSTART作为第一次出现,这是错误的吗?可能是rrule.js没有正确实现吗?谢谢。 - Anatoly