2013-11-27 4 views
0

Я создаю свой собственный анализатор .ics.Как составить список datetimes с помощью rrule

Я использую модуль python icalendar. Он отлично работает, но я хотел бы получить список datetimes для событий, которые имеют RRULE.

я дата начала как экземпляр объекта DateTime и RRULE разобран, как это:

CaselessDict({'FREQ': ['MONTHLY'], 'INTERVAL': [1], 'BYDAY': ['4TH']}) 

Но я не могу понять, как сделать список DateTimes из этих двух вещей.

Спасибо

ответ

0

Вы можете использовать python-dateutil библиотеку для генерации rrule с, например:

from dateutil.rrule import rrule, MONTHLY 

dts = list(rrule(MONTHLY, interval=10, byweekday=4, count=3)) 
# [datetime.datetime(2013, 11, 29, 15, 44, 45), datetime.datetime(2014, 9, 5, 15, 44, 45), datetime.datetime(2014, 9, 12, 15, 44, 45)] 

Adjust аргументы в случае необходимости.

+0

Так что я должен покрыть все возможности некоторыми ИФ и другими? Их может быть много. – Blaskovic

+0

@Blaskovic, почему вы хотите это сделать ... Вы можете передать переменные из словаря, который у вас есть: 'interval = your_CaselessDict ['INTERVAL']' и т. Д. Возможно, вам придется создать сопоставление для частота ... –

+0

Потому что вы можете получить что-то вроде этого: WKST = SU; BYDAY = TU, TH См .: http://www.kanzaki.com/docs/ical/rrule.html – Blaskovic