我需要计算重复事件的下一个可能日期。从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'>)
答案 0 :(得分: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)