2009-12-15 48 views
16

在Python中,我该如何检查它的工作日(星期一至星期五)以及时间是上午10点至下午3点之间?如何检查星期一至星期五的时间是上午10点至下午3点?

+3

您以前的问题有一个答案,其中包含您要求的代码!更何况,你只是复制该问题http://stackoverflow.com/questions/1902338/how-to-implement-time-event-scheduler-in-python – SilentGhost 2009-12-15 12:59:04

+0

对不起,但较早的解决方案被投票-ve – Vishal 2009-12-15 14:57:17

+0

所以什么?它以某种方式停止运行代码? – SilentGhost 2009-12-15 15:24:15

回答

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

'范围(6)'长度为6 – SilentGhost 2009-12-15 12:55:23

+0

thx,应该是范围(1,6).. – miku 2009-12-15 12:57:03

+1

小时检查应该是'd.hour在范围内(10,15)'。如果小时等于15,则已过了下午3点,因此在允许的小时数范围内不应包含15。 – 2009-12-15 13:00:58

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

时间为上午10点到下午3点。就在那里,以及

0

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

的文档指出date.weekday()返回星期为一个整数,其中星期一为0和周日为6。所以这个代码将工作:

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)

相关问题