在 Dart 中从规则中获取下一个发生日期

In Dart get next occurring date from an rrule

是否有 Dart 库,或者是否有正确的方法来处理查找从格式正确的规则返回的下一个日期?

例如给出以下规则: "FREQ=WEEKLY;BYDAY=WE;INTERVAL=1;DTSTART=20180328T160000Z"

我想要下一个星期三的日期时间值。

不知道是否有这方面的图书馆,但我很快想出了这个。未完成,但这是一个开始。

void main() {
    var today = DateTime.parse('20180328T160000Z');

    var days = today.weekday < DateTime.wednesday ? DateTime.wednesday - today.weekday : 7 - today.weekday + DateTime.wednesday;

    var next = today.add(new Duration(days:days));
    print(next);
}

其他人可能会想出更好的办法。解析规则将是困难的部分。

我已经使用 rrule 一段时间了并且非常满意