鉴于上述变量所代表的当前时间和截止时间,确定作业是否仍有资格提交

问题描述 投票:0回答:1

如果 current_hour、current_month 和 current_section 表示的时间早于 due_hour、due_minute 和 due_section 表示的时间,则作业符合条件。部分指上午/下午。

我是编程新手,正在解决以下问题。我能够解决所有测试用例,除了当前时间为 12:37 AM 且截止时间为 9:00 AM 的实例。

当我在代码中尝试它时,它返回“False”而不是“True”,即使当我自己查看它时,我看不到它如何按照我在代码中概述的标准返回“False”而不是“True” .

任何帮助将不胜感激,提前致谢!

if current_section == "PM" and current_hour != 12:
    current_hour += 12

if due_section == "PM" and due_hour != 12:
    due_hour += 12

if current_section == "PM" and due_hour == 12:
    due_hour -= 11

if current_section == "AM" and due_hour == 12:
    due_hour -= 11

if due_section == "PM" and due_hour == 12:
    due_hour -= 11

if due_section == "AM" and due_hour == 12:
    due_hour -= 11

if current_hour < due_hour:
    print("True")
else:
    print("False")

if current_hour == due_hour:
    if current_minute < due_minute:
        print("True")
python datetime if-statement
1个回答
0
投票

你似乎把这件事复杂化了一点。

注意这是纯粹的,没有使用时间和日期时间库

我首先会将所有时间转换为 24 小时制,这样

9:20PM
就会变成
21:20
并且
9:20AM
会保留
9:20

要做到这一点,就像:

if due_section == "PM":
    due_hour += 12

if current_section == "PM":
    current_hour += 12

# Then simply check the hour then minutes.
if due_hour < current_hour:
    print("False - Overdue by hours.")
elif due_hour == current_hour and due_minute < current_minute:
    print("False - Overdue by minutes.")
else:
    print("True - On Time.")
© www.soinside.com 2019 - 2024. All rights reserved.