2012-02-28 18 views
16

Duplicar posible:
Get Last Day of the Month in Python¿Cómo encontrar el número de días del mes en curso

¿Cómo puedo obtener el número de días del mes en curso? Es decir, si el mes actual es "enero de 2012" debería obtener 31. Si es "febrero de 2012" debería obtener 29.

+3

Ver esta pregunta: http://stackoverflow.com/questions/42950/get-last-day -of-the-month-in-python – Peter

+0

@peter nice Solo estaba mirando http://docs.python.org/library/calendar.html, debe haber pasado glaseado 'monthrange' –

+0

' def days_in_month(): return 29' –

Respuesta

28

Como mencionó Peter, calendar.monthrange(year, month) devuelve día de la semana (0-6 ~ lun-dom) y número de días (28-31) para year, month.

>>> import calendar 
>>> print calendar.monthrange(2012,1)[1] 
31 
>>> calendar.monthrange(2012,2)[1] 
29 

Editar: Respuesta actualizado para devolver el número de días del mes en curso

>>> import calendar 
>>> import datetime 
>>> now = datetime.datetime.now() 
>>> print calendar.monthrange(now.year, now.month)[1] 
29 
+0

Gracias !!!! pero no quiero codificar las fechas como (2012,1) .. Quiero que sea la fecha del sistema – Alchemist777

+0

actualizó la respuesta. – BioGeek

+0

Muchas gracias. Esto funciona para Windows..yo estoy usando ubuntu 11.10..y el calendario de importación produce el error "Sin módulo llamado calendario" ... ¿alguna idea? ¿o hay un método alternativo para hacer esto sin usar 'calendario'? – Alchemist777

Cuestiones relacionadas