2

我需要从重复事件中计算下一个可能的日期。从 vcalender 我得到了这个信息:

DTSTART;TZID=Europe/Berlin:20130711T130000
RRULE:FREQ=WEEKLY;BYDAY=TH

使用http://pythonhosted.org/caldav/按日期获取事件。

start_date = datetime.today()
end_date = start_date + timedelta(days=7)

calendar.date_search(start_date, end_date)

但是在此信息中有今天的事件,是否可以使用此信息计算/打印正确的日期?

y.getChildValue('rrule')
    u'FREQ=WEEKLY;BYDAY=TH'

y.getChildValue('dtstart')
    datetime.datetime(2013, 7, 11, 13, 0, tzinfo=<tzicalvtz 'Europe/Berlin'>)
4

1 回答 1

2

如果您愿意使用其他模块,请尝试使用python-dateutil,例如

import dateutil.rrule as rrule
rule = rrule.rrulestr(y.getChildValue('rrule'), dtstart=y.getChildValue('dtstart'))
rule.after(y.getChildValue('dtstart'))

应该返回:

datetime.datetime(2013, 7, 18, 13, 0)
于 2013-12-05T13:34:05.840 回答