我想检查某个月的日子。例如,如果我输入2017年和2月或2月,我希望收到该月的所有日期,在本例中为01-28.02.2017。
可以用Python做吗?试图用谷歌找东西,但没有成功。
提前致谢,
答案 0 :(得分:3)
标准库中有一个函数:itermonthdates()
。
from calendar import Calendar
for date in Calendar().itermonthdates(2017, 2):
print(date)
您可能需要使用if date.month == 2
过滤日期,因为如果它们属于同一周,它将包含上一个月和下个月的天数。
答案 1 :(得分:1)
另类,正如Mark在评论中所说,如果你知道这个月,那么你可以自己做。
import calendar
year, month = 2017, 2
def days_in_month(date):
if calendar.isleap(date.year) and date.month == 2:
return 29
else:
return [None, 31, 28, 31, 30, 31, 30, ...][date.month]
date = datetime.date(year=year, month=month)
dates = [datetime.date(year=year, month=month, day=d) for d in range(1, days_in_month(date)+1)]