请告诉我如何使用python列出未来24个月的开始日期,
如:
01May2014
01June2014
.
.
.
01Aug2015
等等
我试过了:
import datetime
this_month_start = datetime.datetime.now().replace(day=1)
for i in xrange(24):
print (this_month_start + i*datetime.timedelta(40)).replace(day=1)
但它跳过了几个月。
只需递增月份值;我在这里使用了datetime.date()
类型,因为这已经绰绰有余了:
current = datetime.date.today().replace(day=1)
for i in xrange(24):
new_month = current.month % 12 + 1
new_year = current.year + current.month // 12
current = current.replace(month=new_month, year=new_year)
print current
新月计算根据最后一个计算的月份选择下个月,并且每次上个月到达 12 月时,该年都会递增。
通过操作current
对象,您可以简化计算;您也可以使用 i
作为偏移量来完成,但计算会变得有点复杂。
它也可以与datetime.datetime()
一起使用。
为了简化算术,可以使用try/except :
from datetime import date
current = date.today().replace(day=1)
for _ in range(24):
try:
current = current.replace(month=current.month + 1)
except ValueError: # new year
current = current.replace(month=1, year=current.year + 1)
print(current.strftime('%d%b%Y'))