【问题标题】:24 hour time into 12 hour time24小时制变成12小时制
【发布时间】:2018-04-13 06:55:52
【问题描述】:

我需要制作一个简单的程序,将输入的 24 小时时间转换为 12 小时时间,如果输入的时间不正确,则会产生错误。我目前有以下代码,但是,我有一些问题。一个问题是,如果输入“0924”,它会输出“924 am”,而我需要它来产生“9:24am”(空间不是很重要,但它是首选)。另外,我不完全确定从哪里开始执行 0001-0059,因为例如“0001”会产生“1 am”,这显然是不正确的。

print("Enter a time in 24 hour time, e.g. '1620'")

time = (int(input("Time: ")))

normal = 0

if (time == 0000):

    normal="12:00am"
    print (normal)

elif (time>1200):

    normal = (time - 1200)
    print (int(normal), ("pm"))

elif (time<1200):

    normal = time
    print (int(normal), ("am"))

提前感谢您的帮助!

【问题讨论】:

    标签: python


    【解决方案1】:

    试试这个

    import time
    timevalue_24hour = "1620";
    timevalue_24hour = timevalue_24hour[:2] + ':' + timevalue_24hour[2:]
    print (timevalue_24hour)
    t = time.strptime(timevalue_24hour, "%H:%M")
    timevalue_12hour = time.strftime( "%I:%M %p", t )
    print (timevalue_12hour) 
    

    将输入作为字符串。将其分配给timevalue_24hour,其余的就可以了

    【讨论】:

    • 我做到了,但因为我的代表太低,所以没有算对不起:( 编辑:哦,嘿,现在让我来了!以前没有
    【解决方案2】:

    打印时,normal 只是一个数字。 0 消失是因为您通常不会在数字前面写 0。我建议做这样的事情

    def normal_check(num):
        if num < 10:
            return "000"+str(num)
        elif num < 100:
            return "00"+str(num)
        elif num < 1000:
            return "0"+str(num)
        else:
            return str(num)
    
    print("Enter a time in 24 hour time, e.g. '1620'")
    
    time = (int(input("Time: ")))
    
    normal = 0
    
    if (time == 0000):
    
        normal="12:00am"
        print (normal)
    
    elif (time>1200):
    
        normal = normal_check(time - 1200)
        print (normal, ("pm"))
    
    elif (time<1200):
    
        normal = normal_check(time)
        print (normal, ("am"))
    

    【讨论】:

      【解决方案3】:

      最好的方法是将输入作为 str 而不是 int。将其作为 str 并将其拆分为两个两位数的 int 值。 然后第一个字符串如果小于 12 将是小时,否则从第一个 str 中减去 12 并使用 PM。此外,第二个 str 将只是分钟。

      【讨论】:

      • 如何拆分?那是使用两个单独的输入还是..?
      • 假设你创建的两个int变量是v1和v2,输入存储在变量time中。代码将是:v1 = time[0:2] v2 = time[2:4]
      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 2014-11-20
      • 2021-12-05
      • 2017-03-25
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多