如何在Python中检查基于年和月的日期

时间:2017-10-08 08:32:36

标签: python python-2.7

我想检查某个月的日子。例如,如果我输入2017年和2月或2月,我希望收到该月的所有日期,在本例中为01-28.02.2017。

可以用Python做吗?试图用谷歌找东西,但没有成功。

提前致谢,

2 个答案:

答案 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)]