问题就在标题中。 我有一个活动:
from icalendar import Event
from datetime import datetime
# every day from 8am to 12pm
ev = Event(dtstart=datetime(2013,11,22,8), dtend=datetime(2013,11,22,12), rrule='freq=daily')
# tomorrow 10am
d = datetime(2013, 11, 23, 10)
ev 是否重叠/包含 d ?我应该使用什么功能? 奇怪的是,我在icalendar的单元测试中没有找到任何东西
我可能是错的,但是IIRC icalendar只是对icalendar文件进行解析和序列化,它不做规则的解释等。
为此,您需要 dateutil 的 dateutil.rrule。而且它只会进行递归规则计算,它没有事件接口,所以你必须单独执行这些步骤。
您可以使用 recurring-ical-events 为此。
# ... your code
import recurring_ical_events
for event in recurring_ical_events.of(ev).at(d):
print(event) # process them here