Programa Python para verificar la fecha en el rango de fechas

Dada una lista de fechas y un rango de fechas, la tarea es escribir un programa Python para verificar si existe alguna fecha en la lista en un rango dado.

Ejemplo:

Entrada: test_list = [datetime(2019, 12, 30), datetime(2018, 4, 4), datetime(2016, 12, 21), datetime(2021, 2, 2), datetime(2020, 2, 3), fecha y hora (2017, 1, 1)], fecha_strt, fecha_fin = fecha y hora (2019, 3, 14), fecha y hora (2020, 1, 4)

Salida: Verdadero

Explicación: el 30 de diciembre de 2019 se encuentra en el rango del 14 de marzo de 2019 al 4 de enero de 2020, por lo tanto, es verdadero.

Entrada: test_list = [datetime(2018, 4, 4), datetime(2016, 12, 21), datetime(2021, 2, 2), datetime(2020, 2, 3), datetime(2017, 1, 1)] , fecha_strt, fecha_fin = fecha y hora (2019, 3, 14), fecha y hora (2020, 1, 4)

Salida: Falso

Explicación: ninguna fecha se encuentra dentro del rango.

Método 1: Usar bucle

En esto, para cada elemento, verificamos usando condicionales si alguna fecha cae en el rango, si se encuentra, se devuelve verdadero.

Python3

# Python3 code to demonstrate working of
# Test for date in date range
# Using loop
from datetime import datetime
  
# initializing list
test_list = [datetime(2019, 12, 30), datetime(2018, 4, 4), 
             datetime(2016, 12, 21), datetime(2021, 2, 2), 
             datetime(2020, 2, 3), datetime(2017, 1, 1)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing date ranges
date_strt, date_end = datetime(2019, 3, 14), datetime(2020, 1, 4)
  
res = False
for ele in test_list:
  
    # checking for date in range
    if ele >= date_strt and ele <= date_end:
        res = True
  
# printing result
print("Does list contain any date in range : " + str(res))

Producción:

La lista original es: [datetime.datetime(2019, 12, 30, 0, 0), datetime.datetime(2018, 4, 4, 0, 0), datetime.datetime(2016, 12, 21, 0, 0) , fechahora.fechahora(2021, 2, 2, 0, 0), fechahora.fechahora(2020, 2, 3, 0, 0), fechahora.fechahora(2017, 1, 1, 0, 0)]

¿La lista contiene alguna fecha en el rango?: Verdadero

Método 2: Usar cualquiera()

Similar al método anterior, la única diferencia es que any() se usa para verificar la presencia de cualquier fecha en el rango.

Python3

# Python3 code to demonstrate working of
# Test for date in date range
# Using any()
from datetime import datetime
  
# initializing list
test_list = [datetime(2019, 12, 30), datetime(2018, 4, 4),
             datetime(2016, 12, 21), datetime(2021, 2, 2), 
             datetime(2020, 2, 3), datetime(2017, 1, 1)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing date ranges
date_strt, date_end = datetime(2019, 3, 14), datetime(2020, 1, 4)
  
# any() for checking presence of any date in range
res = any(ele >= date_strt and ele <= date_end for ele in test_list)
  
# printing result
print("Does list contain any date in range : " + str(res))

Producción:

La lista original es: [datetime.datetime(2019, 12, 30, 0, 0), datetime.datetime(2018, 4, 4, 0, 0), datetime.datetime(2016, 12, 21, 0, 0) , fechahora.fechahora(2021, 2, 2, 0, 0), fechahora.fechahora(2020, 2, 3, 0, 0), fechahora.fechahora(2017, 1, 1, 0, 0)]

¿La lista contiene alguna fecha en el rango?: Verdadero

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 *