在两个日期时间值之间输出文本

时间:2016-04-09 20:38:21

标签: python python-3.x

我正在制定一个程序来确定你在学校的哪个阶段;时间表在某些日子有所不同,因此您可以运行该程序,而不是找出您所处的日程安排。

我正在使用' DateTime'进口;但问题是某些课程可能从7:45开始到9:50结束。我编程两次的方式相互矛盾,因此文本不会显示出来。

这里是代码片段:

if sch == "A":
    if hour >= 7 and min >= 45:
        if hour <= 9 and min <= 50:
            print("It is period 1; Class ends at 9:50AM")

之前在节目中确定我们按时完成了“A&#39;上午7:45开始,上午9:50结束。简而言之,我希望它在这两次之间显示消息。

3 个答案:

答案 0 :(得分:0)

使用datetime执行此任务:

from datetime import datetime

begin = '07:45:00'
end = '09:50:00' # for example
current_time = '10:32:13'

FMT = '%H:%M:%S' # format time

if sch == "A":
    if datetime.strptime(begin, FMT) < \
            datetime.strptime(current_time, FMT) < \
            datetime.strptime(end, FMT):
        print("It is period 1; Class ends at 9:50AM")

答案 1 :(得分:0)

由于我评论你的逻辑是关闭的,因为除了45-50范围内的任何东西之外你不允许分钟数,你正在使用日期时间,所以坚持比较datetimes.time's看小时和分钟是否在范围7:45-9:50

from datetime import time

# cretate a start and end time 
start, end = time(7, 45, 0), time(9, 50, 0)

# pass whatever hour and min are in your code to time
hour_min = time(7, 46)

# check the times falls in the range 7:45-9:50
if  start  <= hour_min <= end:
    print("It is period 1; Class ends at 9:50AM")

答案 2 :(得分:0)

你可以试试这个:

from datetime import time

if sch == "A":
    if time(hour=7, minute=45) <= time(hour=hour, minute=minute) <=  time(hour=9, minute=45):
        print("It is period 1; Class ends at 9:50AM")