在python中从年月获取本月的最后一天[重复]

Posted

技术标签:

【中文标题】在python中从年月获取本月的最后一天[重复]【英文标题】:get last day of the month from year month in python [duplicate] 【发布时间】:2015-10-26 19:29:56 【问题描述】:

我需要根据给定的 yearmonth 值获取一个月的第一天和最后一天。我能够得到第一天,我们如何在这里得到一个月的最后一天(在 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() 函数的第三个参数。我想计算该月的天数,然后将其传递给函数。

【问题讨论】:

那么你有什么尝试,它到底有什么问题?例如,为什么不从下个月的开始减去一天? 我尝试了日历方法来获取月份范围,这样我可以做到,但我想使用日期函数,因为我在第一天使用它。 @Busturdust 建议的以下方法是我正在寻找的方法 【参考方案1】:

使用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 ~ Mon-Sun) 和天数 (28-31)。”

【讨论】:

你可能想解释一下monthrange的返回值:“返回年、月的工作日(0-6~Mon-Sun)和天数(28-31)。” (所以 OP 需要month_end = monthrange(year, month)[1]。)您的datetime 解决方案需要额外的逻辑来处理一年中的第一个月和最后一个月。我会省略它,因为monthrange 解决方案绰绰有余。另外,您有一个错字——from 之前有一个反引号。

以上是关于在python中从年月获取本月的最后一天[重复]的主要内容,如果未能解决你的问题,请参考以下文章

获取本月、本季、本年第一天和最后一天等等sql(sql server)

python怎么获得每个月的第一天和最后一天

PHP下获取上个月、下个月、本月的日期

Java获取本月最后一天问题

获取当月的第一天和最后一天示例

如何使用js获取某月的第一天和最后一天