给出给定年份的第一个日期或每个月的函数()



这是我创建的函数,它显示任何一年中特定月份的所有天数(当函数被调用时您可以看到)

def func(y, m):
for i in range(1, calendar.monthrange(y, m)[1]+1):
th_date = datetime(y, m, i)
print(th_date)
func(2020,4)

注意:我想要的是它应该显示给定年份中所有月份的所有第一个日期

预期输出:

2021-01-01
2021-02-01
2021-03-01 
2021-12-01

它应该是动态的,所以它可以用于任何年份,而不是特定年份(2022,2021,2020,.....等)

既然你标记了pandas,一种方法是使用pandas.date_range

注:"MS"表示日历月开始

def func(y, m):
return pd.date_range(str(y), periods=m, freq="MS")

输出:

func(2020, 4)
# DatetimeIndex(['2020-01-01', '2020-02-01', '2020-03-01', '2020-04-01'], dtype='datetime64[ns]', freq='MS')

这是你要找的吗?我假设参数m将显示到该月份:

from datetime import datetime
def func(y, m):
for i in range(1, m+1):
th_date = datetime(y, i, 1)
print(str(th_date)[0:10])
func(2020,4)

输出
2020-01-01
2020-02-01
2020-03-01
2020-04-01

使用strftime

def func(y, m):
for i in range(1, calendar.monthrange(y, m)[1]+1):
th_date = datetime(y, m, i)
print(th_date.strftime("%Y-%m-%d"))
func(2020,4)

最新更新