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

如何在Python中基于年和月检查日期,python,python-2.7,Python,Python 2.7,我想查看给定月份的天数。例如,如果我输入2017年和第2个月或2月,我希望收到该月的所有日期,在本例中为2017年2月1日至28日 可以用Python来做吗?他试图用谷歌找到一些东西,但没有成功 提前感谢,标准库中有一个用于此的函数: 如果date.month==2,您可能需要使用筛选日期,因为如果上个月和下个月属于同一周,则该日期将包含上个月和下个月的天数。标准库中有一个用于此的函数: 如果date.month==2,您可能需要使用筛选日期,因为如果上个月和下个月属于同一周,则该日期将包含上个

我想查看给定月份的天数。例如,如果我输入2017年和第2个月或2月,我希望收到该月的所有日期,在本例中为2017年2月1日至28日

可以用Python来做吗?他试图用谷歌找到一些东西,但没有成功


提前感谢,

标准库中有一个用于此的函数:


如果date.month==2,您可能需要使用
筛选日期,因为如果上个月和下个月属于同一周,则该日期将包含上个月和下个月的天数。

标准库中有一个用于此的函数:


如果date.month==2,您可能需要使用
筛选日期,因为如果上个月和下个月属于同一周,则该日期将包含上个月和下个月的天数。

另一种方法,如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)]

另外,正如马克在评论中建议的那样,如果你知道月份,那么你可以自己做

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

我不是在寻找月的最后一天,而是从第1天开始的每个月的所有日子。如果你知道第一天和最后一天,那么你也知道这两天之间的一切。我不是在寻找月的最后一天,而是所有的日子。每个月从第一天开始。如果你知道第一天和最后一天,那么你也知道这两天之间的一切。这会考虑闰年吗?@mikey是的,它会。所以
对于日历中的日期(d代表d()。itermonthdates(2017,2)如果d.month==2)
这会考虑闰年吗?@mikey是的,它会。所以
对于日历中的日期(d代表d()。itermonthdates(2017年,2)如果d.month==2)