sábado, 21 de mayo de 2011

Sumar un mes con python


>>> from datetime import date
>>> current_date=date.today()
>>> carry, new_month=divmod(current_date.month-1+1, 12)
>>> new_month+=1
>>> current_date=current_date.replace(year=current_date.year+carry, month=new_month)
>>> print date.today()
2011-05-21
>>> print current_date
2011-06-21
>>>

5 comentarios:

Anónimo dijo...

Excelente, me ayudo mucho este post.
Gracias,
Att. Edisaum

Anónimo dijo...

Gràcies!!!

Goinnn dijo...

¿Por qué "current_date.month-1+1", no sería "current_date.month"?

Nacho dijo...

Si lo usas para sumar dos meses puede fallar.

Contraejemplo:

2013/12/29 + 2 meses

Al generar la fecha:

ValueError: day is out of range for month

Unknown dijo...

una mejor solución para sumar cualquier numero seria

addMonth = 4;

current_date=grupo.fecha_de_inicio
carry, new_month=divmod(current_date.month + 1 + addMonth, 12)
if new_month == 0:
new_month = 12
current_date=current_date.replace(year=current_date.year+carry, month=new_month)

print current_date