2

我正在将 python dateutil 模块用于支持重复事件的日历应用程序。我真的很喜欢使用 rrulestr() 函数解析 ical rrules 的能力。此外,使用 rrule.between() 获取给定时间间隔内的日期非常快。

但是,只要我尝试执行任何其他操作(即:列表切片、before()、after()、...),一切都会开始爬行。似乎 dateutil 尝试计算每个日期,即使我想要的只是使用 rrule.before(datetime.max) 获取最后一个日期。

有什么办法可以避免这些不必要的计算吗?

4

1 回答 1

4

我的猜测可能不是。datetime.max 之前的最后一个日期意味着您必须计算直到 datetime.max 的所有重复次数,这将是合理的重复次数。可以为一些更简单的重复添加快捷方式。例如,如果每年都在同一日期,那么您实际上不需要计算其间的重复次数。但是,如果你有三分之一的东西,你必须,例如,如果你有最大的重复次数,等等。但我猜 dateutil 没有这些快捷方式。可靠地实现可能会非常复杂。

请问为什么需要在datetime.max之前找到最后一次重复?毕竟,这是将近八千年后的未来...... :-)

于 2009-08-26T19:52:08.420 回答