11

我正在使用python-dateutil包中的rrule方法。我想创建一个可以忽略假日日历中的日期的规则。我知道 exdate() 方法,但这似乎只过滤了输出列表中的日期,只有它已经生成。

from dateutil.rrule import *
from datetime import datetime

set = rruleset()
set.rrule(rrule(MONTHLY, count=4, bysetpos=-1, byweekday=(MO, TU, WE, TH, FR), dtstart=datetime(2013, 1, 1)))
print(list(set))
# outputs 4 dates without an exdate() call
# print : [datetime.datetime(2013, 1, 31, 0, 0), datetime.datetime(2013, 2, 28, 0, 0), datetime.datetime(2013, 3, 29, 0, 0), datetime.datetime(2013, 4, 30, 0, 0)]

set.exdate(datetime(2013, 2, 28, 0, 0))
list(set)
# only outputs 3 dates, ignoring the date provided in exdate()
# print : [datetime.datetime(2013, 1, 31, 0, 0), datetime.datetime(2013, 3, 29, 0, 0), datetime.datetime(2013, 4, 30, 0, 0)]

我想要做的不是省略 datetime(2013, 2, 28, 0, 0) 而是根据原始规则寻找下一个最佳日期,即在这种情况下 datetime(2013, 2, 27 , 0, 0)。有什么想法我能做到这一点吗?

4

0 回答 0