如何在Python中查找哪些事件与icalendar中的日期重叠?

问题描述 投票:0回答:2

问题就在标题中。 我有一个活动:

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的单元测试中没有找到任何东西

python icalendar
2个回答
1
投票

我可能是错的,但是IIRC icalendar只是对icalendar文件进行解析和序列化,它不做规则的解释等。

为此,您需要 dateutil 的 dateutil.rrule。而且它只会进行递归规则计算,它没有事件接口,所以你必须单独执行这些步骤。


0
投票

您可以使用 recurring-ical-events 为此。

# ... your code
import recurring_ical_events
for event in recurring_ical_events.of(ev).at(d):
    print(event) # process them here
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.