我有一项任务,我需要计算马拉松的运行时间。 我把它作为一个起点
start_hour = 3
start_minute = 48
length = 172
基本上,开始时间是3:48,持续172分钟。 我的任务是找到马拉松结束的时间。结束时间应该看起来像这样的格式3:48,分钟和小时转换为字符串并与“:”放在一起。 我花了一个半小时,我仍然无法解决它。 这就是我所说的:
endhour = start_hour + (length // 60)
endminute = start_minute + (length % 60)
end_minutee = endminute % 60
format(endhour)
endhourAsStr = str(endhour)
end_minuteeAsStr = str(end_minutee)
print(endhourAsStr + ":" + end_minuteeAsStr)
但是当我打印最后一小时更短时,它应该是1小时。 我猜我需要用>做点什么或者<但我真的无法理解。我想我只需要最后的推动。 offtopic:我对程序很新,我没有任何经验。
答案 0 :(得分:3)
您可以使用一些datetime
技巧来获得有保证的正确结果:
start_hour = 3
start_minute = 48
length = 172
start = datetime.datetime(100, 1, 1, start_hour, start_minute, 0)
end = start + datetime.timedelta(minutes=length)
result = str(end.time())
如果你想在最后摆脱:00
秒,只需修改最后一行:
result = end.strftime('%H:%M')
我更喜欢这种方法,因为它可以解释边缘情况,例如从午夜开始一天到第二天结束。
答案 1 :(得分:1)
我建议
endhour = start_hour + (length // 60)
endminute = start_minute + (length % 60)
endhour += endminute // 60
endminute = endminute % 60
endhour = endhour % 24
print('{}:{}'.format(endhour, endminute))
在完成结束时间和分钟后,再次从结束分钟中提取分钟和小时。
最后,您将小时数调整为0到23之间。
答案 2 :(得分:1)
如何将所有内容保存在几分钟内,然后按照预期的方式计算输出?保持简单易懂和阅读:)
start_time = start_hour*60 + start_minute
end_time = start_time + length
end_hour, end_minute = end_time // 60, end_time % 60
print('{}:{}'.format(end_hour, end_minute))
# 6:40
答案 3 :(得分:1)
使用divmod
。
start_hour = 3
start_minute = 48
length = 172
elapsed_hours, elapsed_minutes = divmod(length, 60)
extra_hour, finish_minute = divmod(start_minute + elapsed_minutes, 60)
finish_hour = start_hour + elapsed_hours + extra_hour
print("{hour}:{minute}".format(hour=finish_hour, minute=finish_minute))
这假设您不希望任何人在午夜/第二天之后完成任务。如果您想考虑这种可能性,可以将finish_hour
的模数设为24。
答案 4 :(得分:1)
让我们保持简单
hour = int(input("Starting time (hours): "))
mins = int(input("Starting time (minutes): "))
dura = int(input("Event duration (minutes): "))
print((((hour*60+mins+dura)//60)%24) , ":" , ((mins+dura)%60) , sep="")
或
hour = int(input("Starting time (hours): "))
mins = int(input("Starting time (minutes): "))
dura = int(input("Event duration (minutes): "))
endmins = (mins+dura)%60
endhours = ((hour*60 + mins + dura)//60)%24
print(endhours , ":" , endmins , sep="")
答案 5 :(得分:0)
保持简单! :)
.contentcontainer {
width: 70%;
margin: 25px auto;
color: #61625B;
text-align: justify;
border-width: 1px;
border-color: red;
border-style: dashed;
display: flex;
align-items: center
}
.imagecontainer {
width: 45%;
margin: 50px auto;
border-width: 1px;
border-color: blue;
border-style: dashed;
}
.imagecontainer>img {
max-width: 100%;
}
.content {
width: 45%;
margin: 25px auto;
border-width: 1px;
border-color: green;
border-style: dashed;
}
答案 6 :(得分:0)
简短简短
$window.addEventListener('click', function(){
// record click event
});
$window.addEventListener('keydown', function(){
// record keydown event
});
答案 7 :(得分:-1)
我建议以下内容,
endhour=(start_hour*60+start_minute+length)%1440
endhour//=60
endmin=(start_minute+length)%60
print(endhour,":",endmin)
认为是一个非常简单的解决方案:)