2010-07-13 15 views
87

¿Cómo incrementar el día en datetime? En python.¿Cómo incrementar el día en datetime? Python

for i in xrange(1,5) 
    date=datetime.datetime(2003,8,i,12,4,5) 
    print date 

¿Pero necesito pasar años? ¿Algunas ideas? En caso de ser la forma easyier ....

Respuesta

159
date = datetime.datetime(2003,8,1,12,4,5) 
for i in range(5): 
    date += datetime.timedelta(days=1) 
    print(date) 
+2

@Pol, recuerde aceptar sus respuestas ... –

+4

Si necesita tener en cuenta el horario de verano; es más complejo, por ejemplo, ver [¿Cómo puedo restar un día de una fecha python?] (http://stackoverflow.com/a/25427822/4279) – jfs

+2

no funciona para 06/30 + 1day => 06/31 debe ser 07/01 !!! – m3asmi

41

fechas de incremento puede conseguirse utilizando objetos timedelta:

import datetime 

datetime.datetime.now() + datetime.timedelta(days=1) 

Busquen objetos timedelta en la documentación de Python: http://docs.python.org/library/datetime.html

4

Aquí es otro método para agregar días en la fecha usando relativedelta de dateutil.

from datetime import datetime 
from dateutil.relativedelta import relativedelta 

print 'Today: ',datetime.now().strftime('%d/%m/%Y %H:%M:%S') 
date_after_month = datetime.now()+ relativedelta(day=1) 
print 'After a Days:', date_after_month.strftime('%d/%m/%Y %H:%M:%S') 

Salida:

Hoy: 25/06/2015 20:41:44

después de un día: 01/06/2015 20:41:44

+0

¿por qué lo usaría en lugar de 'timedelta()' de stdlib? – jfs

+2

@ J.F.Sebastian Solo para compartir otra posible forma de agregar el día. –

+0

Si no hay ninguna ventaja, no creo que agregue valor. –

Cuestiones relacionadas