Python 3.x 如何在python3中以月为单位循环数天?

Python 3.x 如何在python3中以月为单位循环数天?,python-3.x,Python 3.x,比如说,对于2020年,我如何在几个月内重复这些天,以使我的结果符合以下格式: 1月1日 1月2日 1月3日 .... 1月31日 Feb1 我在网上试过很多东西,但都找不到答案。请帮助:这是粗糙的,但能满足您2020年的需求。对于非闰年,您需要将366更改为365 #!/usr/bin/python3 import datetime startDate = '2020-01-01' start = datetime.datetime.strptime(startDate, '%Y-%m-%

比如说,对于2020年,我如何在几个月内重复这些天,以使我的结果符合以下格式:

1月1日 1月2日 1月3日 .... 1月31日 Feb1


我在网上试过很多东西,但都找不到答案。请帮助:

这是粗糙的,但能满足您2020年的需求。对于非闰年,您需要将366更改为365

#!/usr/bin/python3

import datetime
startDate = '2020-01-01'

start = datetime.datetime.strptime(startDate, '%Y-%m-%d')

for dayNum in range(0,366):
    dayOfYear = start + datetime.timedelta(days=dayNum)
    print(dayOfYear.strftime('%b %d, %Y'))

这是粗糙的,但得到了2020年你想要的。对于非闰年,您需要将366更改为365

#!/usr/bin/python3

import datetime
startDate = '2020-01-01'

start = datetime.datetime.strptime(startDate, '%Y-%m-%d')

for dayNum in range(0,366):
    dayOfYear = start + datetime.timedelta(days=dayNum)
    print(dayOfYear.strftime('%b %d, %Y'))

这两种方法都可以直接正确地处理闰年

使用简单的while循环:

从datetime导入datetime,timedelta 定义日期: dt=日期时间年,1,1 而dt.year==年份: 收益率 dt+=timedeltadays=1 使用日期规则:

从日期时间导入日期时间 从dateutil.rrule导入rrule,每日 定义日期: 第一天=日期时间年,1,1 last_date=datetimeyear,12,31 return rruleDAILY,dtstart=first\u date,till=last\u date 两者的使用方式相同:

对于iter_日期2020中的dt: printdt.strftime“%b%-d”
格式字符串“%b%-d”将提供您在问题中指定的格式。我不知道这是否是一个要求。

这两种方法都能立即正确处理闰年

使用简单的while循环:

从datetime导入datetime,timedelta 定义日期: dt=日期时间年,1,1 而dt.year==年份: 收益率 dt+=timedeltadays=1 使用日期规则:

从日期时间导入日期时间 从dateutil.rrule导入rrule,每日 定义日期: 第一天=日期时间年,1,1 last_date=datetimeyear,12,31 return rruleDAILY,dtstart=first\u date,till=last\u date 两者的使用方式相同:

对于iter_日期2020中的dt: printdt.strftime“%b%-d” 格式字符串“%b%-d”将提供您在问题中指定的格式。我不知道这是否是一项要求。

该模块提供了相当多的功能

这里有一个适用于任何给定年份的解决方案

import calendar as cal

for mi in range(1,13):
 _, days = cal.monthrange(2020, mi)
 for d in range(1, days+1):
  print(cal.month_name[mi], d)
该模块提供了相当多的功能

这里有一个适用于任何给定年份的解决方案

import calendar as cal

for mi in range(1,13):
 _, days = cal.monthrange(2020, mi)
 for d in range(1, days+1):
  print(cal.month_name[mi], d)

欢迎来到堆栈溢出。到目前为止你试过什么?你能给我们看一些代码片段吗?问题是我正在为一些更大的东西编写一个程序,这是完成的需要,我只是想办法让这个DoneWalcome堆栈溢出。到目前为止你试过什么?你能给我们看一些代码片段吗?问题是我正在为一些更大的东西编写一个程序,这是一个完成的需要,我只是想找到一种方法来得到这个。我认为@ibonyun的解决方案比我的丑陋的黑客更优雅。我认为@ibonyun的解决方案比我的丑陋的黑客更优雅。