如何使用python列出未来24个月的开始日期?



请告诉我如何使用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'))

相关内容

  • 没有找到相关文章

最新更新