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