24小时到12小时提姆

2024-04-27 04:35:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要做一个简单的程序,把输入的24小时时间转换成12小时的时间,如果输入的时间不正确,就会产生错误。我现在有下面的代码,但是,我有一些问题。一个问题是,如果“0924”是输入,它输出“924am”,当我需要它来产生“9:24am”(这个空间不是很重要,但它是首选)。另外,我也不完全确定从哪里开始做0001-0059,因为“0001”会产生“1am”,这显然是不正确的。在

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"))

提前感谢您的帮助!在


Tags: 代码in程序inputtime错误时间空间
3条回答

打印时,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"))

最好的方法是将输入作为str而不是int。将其作为str接受,并将其拆分为两个两位数的int值。 然后第一个字符串如果小于12将是hour else从第一个str减去12并使用PM。另外,第二个str将是几分钟。在

试试这个

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,剩下的就可以工作了

相关问题 更多 >