2011-02-08 10 views

risposta

179

Uso calendar.monthrange:

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

Giusto per essere chiari, monthrange supporta gli anni bisestili così:

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

Cosa significa (2,29)? Penso che dovrebbe essere (1,28) ... –

+1

@NAMGVU Il primo numero è giorno della settimana del primo giorno del mese, il secondo numero è il numero di giorni in detto mese. –

26

Soluzione alternativa:

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

Solo per il gusto di interesse accademico , L'ho fatto in questo modo ...

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