在Python中,我们如何确定给定月份的天数

我需要在Python中计算给定月份的天数。如果用户输入Feb 2011,程序应该能够告诉我Feb 2011有28天。有没有人能告诉我应该使用哪个库来确定给定月份的长度?

187654 次浏览

您应该使用calendar.monthrange

>>> from calendar import monthrange
>>> monthrange(2011, 2)
(1, 28)

需要说明的是,monthrange也支持闰年:

>>> from calendar import monthrange
>>> monthrange(2012, 2)
(2, 29)

正如@Mikhail-Pyrev在评论中提到的:

第一个数字是该月第一天的工作日,第二个数字是该月的天数。

替代解决方案:

>>> from datetime import date
>>> (date(2012, 3, 1) - date(2012, 2, 1)).days
29

只是为了学术兴趣,我这样做了……

(dt.replace(month = dt.month % 12 +1, day = 1)-timedelta(days=1)).day