我的代码需要一些帮助。我想检查变量start_time
是否小于,等于或大于current_time
来比较时间。
以下是代码:
start_date = str(stop_date[0])
stop_date = str(stop_date[1])
get_current_time = datetime.datetime.now().strftime('%H:%M')
get_start_time = time.strptime(start_date, '%Y%m%d%H%M%S')
start_time = time.strftime('%H:%M', get_start_time)
get_stop_time = time.strptime(stop_date, '%Y%m%d%H%M%S')
stop_time = time.strftime('%H:%M', get_stop_time)
current_time = str(get_current_time)
if start_time <> current_time <> stop_time:
print "program is half way"
以下是start_time
的输出:
19:00
19:00
19:00
19:00
19:00
19:00
19:00
以下是current_time
的输出:
00:10:36 T:5304 NOTICE: 00:09
以下是stop_time
的输出:
00:09:33 T:6824 NOTICE: 19:30
00:09:33 T:6824 NOTICE: 20:00
00:09:33 T:6824 NOTICE: 19:30
00:09:33 T:6824 NOTICE: 20:00
00:09:33 T:6824 NOTICE: 20:00
00:09:33 T:6824 NOTICE: 19:30
00:09:33 T:6824 NOTICE: 20:00
当我尝试这个时:
if start_time <=> current_time < stop_time:
print "program has finished"
它会给我一个错误:invalid syntax
它不允许我在声明中使用=
,我只能在小于或大于=
的语句上写。
如何将=
小于和大于start_time
的{{1}}包括在内,以便将时间与current_time
进行比较?
编辑:奥普斯,对不起我的错误。我粘贴了错误的代码,所以这就是我要做的事情:
if start_time <=> current_time < stop_time:
print "program is half way"
答案 0 :(得分:1)
根据我的理解,你想检查这两个是否成立:
current_time
小于,大于或等于start_time
。current_time
小于stop_time
。现在,第一个可以这样写:
if current_time < start_time or current_time > start_time or current_time == start_time:
print "program has finished"
但是,这始终是正确的,因为start_time
和current_time
将相等(使current_time == start_time
为真)或不同(使current_time < start_time or current_time > start_time
为真)。
第二个可以这样写:
if current_time < stop_time:
print "program has finished"
所以,既然不需要第一个,你只需要:
if current_time < stop_time:
print "program has finished"