从python的一年中获得该月的最后一天

Dat*_*ast 2 python date monthcalendar

我需要根据给定的年月值获得一个月的第一天和最后一天.我能够获得第一天,我们如何得到这个月的最后一天(在python中):

from datetime import date
def first_day_of_month(year,month):
    return date(year, month, 1)

print "Today: %s" % date.today()
print ("First day of this month: %s" %
first_day_of_month(2015,10))
Run Code Online (Sandbox Code Playgroud)

这给出了输出:今天:2015-10-26本月第一天:2015-10-01

如何获取本月的最后一天?Ps:我不想将31作为date()函数的第三个参数.我想计算一个月中的天数,然后将其传递给函数.

Bus*_*ust 8

用途calendar.monthrange:

from calendar import monthrange
monthrange(2011, 2)
(1, 28)
# Just to be clear, monthrange supports leap years as well:

from calendar import monthrange
monthrange(2012, 2)
(2, 29)
Run Code Online (Sandbox Code Playgroud)

"返回工作日(0-6~周一至周日)和年,月的天数(28-31)."

  • 您可能想要解释`monthrange`的返回值:"返回工作日(0-6~周一至周日)和年,月的天数(28-31)." (所以OP会想要`month_end = monthrange(年,月)[1]`.)你的`datetime`解决方案需要额外的逻辑来处理一年中的第一个月和最后一个月.我会省略它,因为`monthrange`解决方案绰绰有余.另外,你有一个拼写错误 - 你在`from`之前有一个反引号. (5认同)