Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用rrule创建日期时间列表_Python_Icalendar_Rrule - Fatal编程技术网

Python 如何使用rrule创建日期时间列表

Python 如何使用rrule创建日期时间列表,python,icalendar,rrule,Python,Icalendar,Rrule,我正在创建自己的.ics解析器 我正在使用icalendar python模块。它的工作原理很好,但我想得到的日期时间列表的事件已设置 我将起始日期作为datetime对象实例,并将RRULE解析为: CaselessDict({'FREQ': ['MONTHLY'], 'INTERVAL': [1], 'BYDAY': ['4TH']}) 但我不知道如何从这两件事中列出日期时间 谢谢您可以使用该库生成rrules,例如: from dateutil.rrule import rrule, M

我正在创建自己的.ics解析器

我正在使用icalendar python模块。它的工作原理很好,但我想得到的日期时间列表的事件已设置

我将起始日期作为datetime对象实例,并将RRULE解析为:

CaselessDict({'FREQ': ['MONTHLY'], 'INTERVAL': [1], 'BYDAY': ['4TH']})
但我不知道如何从这两件事中列出日期时间

谢谢

您可以使用该库生成
rrule
s,例如:

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)]

根据需要调整参数。

所以我必须用一些IFs和其他IFs来涵盖所有可能性?可能有很多。@Blaskovic你为什么要这么做。。。您可以从字典中输入变量,例如:
interval=your_CaselessDict['interval']
等。。。您可能需要为频率创建一个映射…因为您可以得到如下结果:WKST=SU;BYDAY=TU,TH See:@Blaskovic好的。。因此,请确保已从dateutil.rrule import MO、TU、WE、TH、FR、SA、SU等导入常量
。。。然后将
TU
作为文本映射到TU变量。。。因此,它最终会变成
byweekday=[TU,TH]
等等。。。