Creando una lista de rango de fechas en Python

Dada una fecha, la tarea es escribir un programa Python para crear una lista de rango de fechas con las próximas K fechas a partir de la fecha actual.

Ejemplos:

Entrada: test_date = datetime.datetime(1997, 1, 4), K = 5

Salida: [datetime.datetime(1997, 1, 4, 0, 0), datetime.datetime(1997, 1, 5, 0, 0), datetime.datetime(1997, 1, 6, 0, 0), datetime. fechahora(1997, 1, 7, 0, 0), fechahora.fechahora(1997, 1, 8, 0, 0)]

Explicación: se extraen 5 fechas posteriores al 4 de enero en la lista.

Entrada: test_date = datetime.datetime(1997, 1, 4), K = 4

Salida: [datetime.datetime(1997, 1, 4, 0, 0), datetime.datetime(1997, 1, 5, 0, 0), datetime.datetime(1997, 1, 6, 0, 0), datetime. fechahora(1997, 1, 7, 0, 0)]

Explicación: se extraen 4 fechas posteriores al 4 de enero en la lista.

Método #1: Usando timedelta() + comprensión de lista

En esto, podemos agregar deltas consecutivos al día usando timedelta(), y la comprensión de listas se usa para iterar a través del tamaño requerido y construir el resultado requerido.

Python3

# Python3 code to demonstrate working of
# Get Construct Next K dates List
# Using timedelta() + list comphehension
import datetime
  
# initializing date
test_date = datetime.datetime(1997, 1, 4)
               
# printing original date
print("The original date is : " + str(test_date))
  
# initializing K 
K = 5
  
# timedelta() gets successive dates with 
# appropriate difference
res = [test_date + datetime.timedelta(days=idx) for idx in range(K)]
  
# printing result
print("Next K dates list : " + str(res))

Producción:

La fecha original es: 1997-01-04 00:00:00

Siguiente lista de fechas K: [datetime.datetime(1997, 1, 4, 0, 0), datetime.datetime(1997, 1, 5, 0, 0), 

datetime.datetime(1997, 1, 6, 0, 0), datetime.datetime(1997, 1, 7, 0, 0), datetime.datetime(1997, 1, 8, 0, 0)]

Método n.º 2: usar la función de cuenta() + generador

En esto, realizamos una tarea similar a la función anterior, utilizando un generador para realizar la tarea de sucesiones de fechas.

Python3

# Python3 code to demonstrate working of
# Get Construct Next K dates List
# Using count() + generator function
import datetime
import itertools
  
# initializing date
test_date = datetime.datetime(1997, 1, 4)
               
# printing original date
print("The original date is : " + str(test_date))
  
# initializing K 
K = 5
  
# timedelta() gets successive dates with 
# appropriate difference
gen_fnc = (
  test_date - datetime.timedelta(days=idx) for idx in itertools.count())
  
# islice passes counter
res = itertools.islice(gen_fnc, K)
  
# printing result
print("Next K dates list : " + str(list(res)))

Producción:

La fecha original es: 1997-01-04 00:00:00

Siguiente lista de fechas K: [datetime.datetime(1997, 1, 4, 0, 0), datetime.datetime(1997, 1, 3, 0, 0), 

datetime.datetime(1997, 1, 2, 0, 0), datetime.datetime(1997, 1, 1, 0, 0), datetime.datetime(1996, 12, 31, 0, 0)]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *