从python的年份月份获取月份的最后一天
问题描述:
我需要根据给定的yearmonth值获取一个月的第一天和最后一天。我能够得到的第一天,我们如何得到这个月的最后一天在这里(在python):从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))
这使输出: 今天:2015年10月26日 的第一天月:2015-10-01
如何获取月份的最后一天? P.s:我不想给31作为date()函数的第三个参数。我想计算一个月中的天数,然后将其传递给该函数。
答
使用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)
“返回了平日一年(0-6〜周一至周日)和(28-31)的天数,月”。
+5
您可能想要解释'monthrange'的返回值:“返回一年的平日(0-6〜周一至周日)和天数(28-31)月。” (所以OP会希望'month_end = monthrange(year,month)[1]')。你的'datetime'解决方案需要额外的逻辑来处理今年的第一个月和最后一个月。我会忽略它,因为'monthrange'解决方案绰绰有余。此外,你有一个错字 - 你在'from'之前有一个倒退。 –
那么你有什么试过,究竟是什么问题呢?例如,为什么不从下个月的开始减去一天? – jonrsharpe
我尝试了日历方法来获得月份范围,这种方式我可以做到这一点,但我想使用日期函数,因为我用了第一天。下面方法@Busturdust建议的方法是我在找的 –