我正在编写这个 Python 在线课程介绍。我接近这个问题的解决方案,内容如下:
这个程序需要两行输入。第一行是以 24 小时制表示的“开始时间”,带有前导零,例如 08:30 或 14:07。第二行是以分钟为单位的持续时间 D。打印出开始时间后 D 分钟的时间。例如,对于输入
12:30
47
输出:
13:17
给出的提示:
Break the input into hours and minutes.
Final minutes should be (M + D) % 60.
Final hours requires //60 and % 24.
到目前为止我的解决方案:
ST = input()
STlen = len(ST)
D = int(input())
for position in range (0,STlen):
if ST[position] == ':':
H = int(ST[0:position])
M = int(ST[position+1:STlen])
#minutes section
final_min = (M+D) % 60
if final_min < 10:
finalminstr1 = str(final_min)
zeroed_finalmin_str = '0' + finalminstr1
final_min = zeroed_finalmin_str
else:
final_min = (M+D) % 60
#hours section
if D > 60:
finalhr = (D // 60) + H
elif (M+D) % 60 > 0 and H % 24 == H and D < 60:
finalhr = H+1
if finalhr == 24:
finalhr = '00'
#getting final end time ready
finalminstr = str(final_min)
finalhrstr = str(finalhr)
endtime = finalhrstr + ":" + finalminstr
print(endtime)
我认为我的方法过于复杂,会浪费处理时间。我用的时候也坏了
15:33
508
作为输入数据。正确的输出应该是 00:01,但我得到的是 23:01。
关于如何改进我的代码的任何想法?另外,请不要使用函数或方法。我们还没有学会如何使用函数或方法!