繁体   English   中英

如何生成日期范围:给定年份的每一天?

[英]How to generate range of dates: every day of a given year?

我想迭代给定年份中的所有天数:因此它将生成一个日期时间对象,从 1 月 1 日到所有其他日子(包括 2 月 29 日 - 如果该年存在)到 12 月 31 日。

我怎样才能做到这一点 ?

我正在尝试这个:

from datetime import datetime
start_date = datetime( 2015, 1, 1 )
start_date = startdate + 1

但后来意识到你不能像这样添加一个(一个什么?) - 你必须添加一个(一天的)时间增量来做到这一点。

from datetime import datetime, timedelta

def gen_days( year ):
    start_date=datetime( year, 1, 1 )
    end_date=datetime( year, 12, 31 )
    d=start_date
    dates=[ start_date ]
    while d < end_date:
        d += timedelta(days=1)
        dates.append( d )
    return dates

if __name__=='__main__':
    d=gen_days( 2015 )
    print len(d)
    d2=gen_days( 2016 ) # leap year
    print len(d2)

抱歉 - 本来打算用我的问题发布一些非工作代码,但我让它的工作速度比我想象的要快(在这个和其他人的帮助下: How to increment the day in datetime?Python

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM