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