我需要制作一个简单的程序,将输入的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"))
提前感谢您的帮助!
答案 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将只是几分钟。