from datetime import date
from dateutil.relativedelta import relativedelta
starts_at = date(2010, 1, 1)
today = date(2010, 2, 1) # as an example
diff = relativedelta(today, starts_at)
if diff.days == 0: # there must be no days difference between two dates
if diff.months % 12 == 0: # this is a year interval
do_something('annual')
elif diff.months % 6 == 0: # this is a six month interval
do_something('bi_annual')
elif diff.months % 3 == 0: # this is a three month interval
do_something('quarter')
else: # this is a month interval
do_something('month')
要确定今天是否重复出现,可以使用
today in recurring_rule
:^{} 允许您根据RFC 2445创建重复规则。在
如果您只需要支持每月、每季度、每两年、每年一次的简单规则,那么这可能是一种过激行为,但它在更复杂的情况下可能会有用。在
有一个很棒的^{} library 有相关的^{} function 。这样做的目的是找出今天的日期是否是某个范围的“停止”之一。示例实现:
印刷品:
^{pr2}$注意这里的
frequency
必须是Delorean
频率常量之一,但是,如果需要自定义频率值,只需将它们适当地映射到Delorean
常量中。在这其实比我原来想的要简单。因为所有这些间隔都发生在一个月里,所以计算它非常简单。它使用
dateutil
中的relativedelta
对象。在相关问题 更多 >
编程相关推荐