Как определить количество дней для данного месяца в python

Мне нужно рассчитать количество дней для данного месяца в python. Если пользователь вводит февраль 2011 года, программа должна быть в состоянии сказать мне, что в феврале 2011 года было 28 дней. Может ли кто-нибудь сказать мне, какую библиотеку я должен использовать, чтобы определить длину данного месяца.

Ответ 1

Используйте calendar.monthrange:

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

Чтобы быть понятным, monthrange также поддерживает високосные годы:

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

Ответ 2

Альтернативное решение:

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

Ответ 3

Только ради академического интереса, я сделал это таким образом...

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