2009-12-15 11 views
16

En Python, ¿cómo puedo verificar si es un día de la semana (de lunes a viernes) y la hora es entre las 10 AM y las 3 PM?¿Cómo puedo verificar si es de lunes a viernes y la hora es entre 10 AM y 3 PM?

+3

¡Su pregunta anterior tiene una respuesta que contiene el código que usted está solicitando aquí! sin mencionar que solo está duplicando esa pregunta http://stackoverflow.com/questions/1902338/how-to-implement-time-event-scheduler-in-python – SilentGhost

+0

Lo siento, pero la solución anterior fue votó -ve – Vishal

+0

¿Qué? ¿de alguna manera detiene la ejecución del código? – SilentGhost

Respuesta

22
>>> import datetime 
>>> d = datetime.datetime.now() 
# => datetime.datetime(2009, 12, 15, 13, 50, 35, 833175) 

# check if weekday is 1..5 
>>> d.isoweekday() in range(1, 6) 
True 

# check if hour is 10..15 
>>> d.hour in range(10, 15) 
True 

# check if minute is 30 
>>> d.minute==30 
False 
+0

'rango (6)' tiene longitud 6 – SilentGhost

+0

thx, debe ser rango (1, 6) .. – miku

+1

La verificación de la hora debe ser 'd.hora en rango (10, 15)'. Si la hora es igual a 15, ya pasaron las 3 PM, entonces no deberíamos incluir 15 en el rango de horas permitidas. –

1
>>> import datetime 
>>> now = datetime.datetime.now() 
>>> now 
datetime.datetime(2009, 12, 15, 12, 45, 33, 781000) 
>>> now.isoweekday() 
2  # Tuesday 

tiempo entre 10 a.m. y 3 p.m. es justo allí también

0

https://docs.python.org/2/library/datetime.html

La documentación indica que date.weekday() devuelve el día de la semana como un entero, donde el lunes es 0 y el domingo es 6. Así que este código funcionará:

import datetime # Hours must be 24 hour clock times def is_weekday_and_time_in_range(date, start_hour, end_hour): return date.weekday() < 5 and date.hour in range(start_hour, end_hour) today = datetime.datetime.now() is_weekday_and_time_in_range(today, 10, 15)

Cuestiones relacionadas