我们如何确定python中给定月份的天数

Joe*_*es 125 python

我需要计算python中给定月份的天数.如果用户输入2011年2月该程序应该能够告诉我2011年2月有28天.谁能告诉我应该使用哪个库来确定给定月份的长度.

And*_*are 254

用途calendar.monthrange:

>>> from calendar import monthrange
>>> monthrange(2011, 2)
(1, 28)
Run Code Online (Sandbox Code Playgroud)

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

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

  • @NamGVU第一个数字是该月第一天的工作日,第二个数字是该月份的天数. (27认同)
  • 什么(2,29)的意思?我认为应该是(1,28)...... (6认同)
  • @Maddie Nope,两者都从工作日开始:2011 年 2 月的星期四(`1`)和 2012 年 2 月的星期三(`2`)。第一个整数不返回工作日,而是返回一周中的某一天。默认情况下从“0”(星期一)到“6”(星期日)。 (3认同)

Bjö*_*ist 37

替代方案:

>>> from datetime import date
>>> (date(2012, 3, 1) - date(2012, 2, 1)).days
29
Run Code Online (Sandbox Code Playgroud)

  • 该解决方案的难点在于,如果您要在多年的每个月中使用它,则需要考虑年份的增量和月份的周期。 (5认同)

小智 7

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

(dt.replace(month = dt.month % 12 +1, day = 1)-timedelta(days=1)).day
Run Code Online (Sandbox Code Playgroud)