import dateutil.rrule as dr
import dateutil.parser as dp
import dateutil.relativedelta as drel
start=dp.parse("19/02/2010") # Third Friday in Feb 2010这将产生每个月的第三个星期五
rr = dr.rrule(dr.MONTHLY,byweekday=drel.FR(3),dtstart=start, count=10)
每隔第三个星期五打印一次:
print map(str,rr)# ['2010-02-19 00:00:00', '2010-03-19 00:00:00', '2010-04-16 00:00:00', '2010-05-21 00:00:00', '2010-06-18 00:00:00', '2010-07-16 00:00:00', '2010-08-20 00:00:00', '2010-09-17 00:00:00', '2010-10-15 00:00:00', '2010-11-19 00:00:00']
rr是可迭代的,因此您可以使用切片符号选择其他所有项目。这将打印 每隔一个月 的第三个星期五:
print map(str,rr[::2])# ['2010-02-19 00:00:00', '2010-04-16 00:00:00', '2010-06-18 00:00:00', '2010-08-20 00:00:00', '2010-10-15 00:00:00']
上面,我过去
str经常美化输出。有关日期的更灵活的字符串格式,请使用
strftime:有关所有选项,请参见http://au2.php.net/strftime或strftime的手册页。
print [d.strftime('%d/%m/%Y') for d in rr[::2]]# ['19/02/2010', '16/04/2010', '18/06/2010', '20/08/2010', '15/10/2010']


