如何使用Python生成重复日期?例如,我想为"每个第二个月的第三个星期五"生成重复日期.我想生成每日,每周,每月,每年的重复日期(即,与Outlook Express中的重复功能相同).
unu*_*tbu 26
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
Run Code Online (Sandbox Code Playgroud)
这产生了每个月的第三个星期五
rr = dr.rrule(dr.MONTHLY,byweekday=drel.FR(3),dtstart=start, count=10)
Run Code Online (Sandbox Code Playgroud)
每隔三个星期五打印一次:
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']
Run Code Online (Sandbox Code Playgroud)
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']
Run Code Online (Sandbox Code Playgroud)
上面,我曾经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']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4358 次 |
| 最近记录: |