24小时到12小时的时间

时间:2017-11-01 00:55:52

标签: python

我需要制作一个简单的程序,将输入的24小时时间转换为12小时时间,如果输入的时间不正确则会产生错误。我目前有以下代码,但是,我有一些的问题。一个问题是,如果" 0924"是输入,它输出" 924 am",当我需要它产生" 9:24 am" (这个空间并不是非常重要,但它是首选)。此外,我不完全确定从哪里开始做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"))

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

打印时,正常只是一个数字。 0s消失,因为你没有正常在数字前面写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"))

答案 1 :(得分: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 :(得分:-1)

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