首页 > 解决方案 > 在 Dart 中,从规则中获取下一个发生日期

问题描述

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

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

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

标签: dartrrule

解决方案


不知道是否有这个库,但我很快想出了这个。不完整,但它是一个开始。

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);
}

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


推荐阅读