【发布时间】:2011-06-23 17:33:16
【问题描述】:
我需要在 python 中计算给定月份的天数。如果用户输入 2011 年 2 月,程序应该能够告诉我 2011 年 2 月有 28 天。谁能告诉我应该使用哪个库来确定给定月份的长度。
【问题讨论】:
标签: python
我需要在 python 中计算给定月份的天数。如果用户输入 2011 年 2 月,程序应该能够告诉我 2011 年 2 月有 28 天。谁能告诉我应该使用哪个库来确定给定月份的长度。
【问题讨论】:
标签: python
你应该使用calendar.monthrange:
>>> from calendar import monthrange
>>> monthrange(2011, 2)
(1, 28)
需要明确的是,monthrange 也支持闰年:
>>> from calendar import monthrange
>>> monthrange(2012, 2)
(2, 29)
正如@mikhail-pyrev 在评论中提到的那样:
第一个数字是该月第一天的工作日,第二个数字是该月的天数。
【讨论】:
1) 和 2012 年 2 月的星期三 (2)。第一个整数不返回工作日,而是返回星期。默认从0(星期一)到6(星期日)。
替代解决方案:
>>> 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
【讨论】: