Sumar y restar días en Python con datetime.

Por el uso tan amplio de Python es realmente necesario poder sumar y restar días en Python, y para eso podemos emplear la librería datetime.

En situaciones donde necesitamos llevar un seguimiento de la fecha y la hora, podemos emplear este modulo que es el encargado de de manipular fechas y horas, y está integrado en la biblioteca estándar de Python.

Las clases con las que cuenta el modulo son:

 NOMBREDESCRIPCIÓN
1.fechaMuestra la fecha según el calendario georgiano con atributos como año, mes y día.
2.horaMuestra el tiempo, independientemente de cualquier día en particular, con atributos como hora, minuto, segundo, microsegundo y tzinfo.
3.fecha y horaEs una colección de fecha y hora con los atributos año, mes, día, hora, minuto, segundo, microsegundo y tzinfo.
4.timedeltaSe utiliza para manipular la fecha.
5.tzinfoProporciona información sobre la zona horaria.

Otros post sobre Python

TIMEDELTA  para sumar y restar

Para sumar o restar fecha, usamos la función timedelta() ya que permite realizar operaciones aritméticas con las fecha como sumar o restar y es fácilmente implementable.

La sintaxis es la siguiente

class datetime.timedelta(días = 10, segundos = 40, microsegundos = 10, milisegundos = 60, minutos = 10, horas = 4, semanas = 8)

Nota: si no especificamos por defecto, toma el entero como un día. 

Sumar 10 días 

from datetime import date, timedelta
 
hoy = date.today()
 
print("hoy es : ", hoy)
 
td = timedelta(10)
print("Dentro de 10 diás estaremos a : ", hoy + td)

Restar 1 día 

from datetime import date, timedelta
 
hoy = date.today()
 
print("hoy es : ",hoy)
 
print("ayer fue : ",ayer - timedelta(1))

Sumar tiempos específicos

from datetime import datetime, timedelta
 
ahora = datetime.now()
print("Current Date and time :- ", curr)
 
nuevo = timedelta(days = 10, seconds = 40, 
                         microseconds = 10,
                         milliseconds = 60, 
                         minutes = 10, hours = 4,
                         weeks = 8)
 
print("nuevo tiempo calculado :- ", nuevo + new_datetime)
from datetime import datetime, timedelta
  
  
ahora = datetime.now()
  
# printing initial_date
print ("fecha inicio", str(ahora))
  
# Calculamos fechas futuras
en_dos_anos = ahora + \
                        timedelta(days = 730)
  
en_dos_dias = ahora + \
                         timedelta(year = 2)
  

print('en dos años estaresmos a:', str(en_dos_anos))
print('en dos dias será:', str(en_dos_dias))

Y hasta aquí, espero sinceramente que este articulo sirva de ayuda a alguien.

Y todo como el diamante antes que luz, fue carbón.

J. Martí