繁体   English   中英

计算python中的小时和分钟

[英]Calculating hours and minutes in python

我有一项任务需要计算马拉松的运行时间。 我将此作为起点

start_hour = 3
start_minute = 48
length = 172

基本上从 3:48 开始,持续 172 分钟。 我的任务是找出马拉松比赛何时结束。结束时间应类似于 3:48 的格式,将分钟和小时转换为字符串并与“:”放在一起。 我花了大约 1 个半小时,但我仍然无法解决它。 这就是我得出的结果:

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:我对编程很陌生,我没有任何经验。

您可以使用一些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')

我更喜欢这种方法,因为它考虑了边缘情况,比如在午夜附近开始一天并在第二天结束。

我会建议

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 之间。

如何将所有内容保留在几分钟内,然后按预期计算输出? 保持简单易懂和阅读:)

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

使用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的模数finish_hour 24。

让我们保持简单

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

保持简单! :)

hour = int(input("Starting time (hours): "))

mins = int(input("Starting time (minutes): "))

dura = int(input("Event duration (minutes): "))

endmin=(mins+dura)%60

endhour=(((hour*60)+mins+dura)//60)%24

print(endhour,":",endmin)

保持简短

st_hour = int(input("What's the start time in hours ?"))
st_min = int(input("What's the start time in mins ?"))
du_time = int(input("What's the duration time in mins ?"))

end_hour = (st_hour + (st_min + du_time)//60)%24
end_mins = (st_min + du_time)%60

print()
print("The end time = ", end_hour, ":", end_mins)
hour = int(input("Starting time (hours): "))
mins = int(input("Starting time (minutes): "))
dura = int(input("Event duration (minutes): "))
new_hour=int((hour+round((dura/60)))%12)
new_mins=int((mins+(dura%60))%60)
print(new_hour,":",new_mins)
start_hour = int(input("Starting time (hours): "))
start_minute = int(input("Starting time (minutes): "))
length = int(input("Event duration (minutes): "))
#Calculating hours and minutes in python
end_hour = (start_hour + ((start_minute + length)//60))%24
end_mins = (start_minute + length)%60
print(end_hour,end_mins,sep=":")

这可能有帮助

我建议以下,

endhour=(start_hour*60+start_minute+length)%1440
endhour//=60
endmin=(start_minute+length)%60
print(endhour,":",endmin)

认为是非常简单的解决方案:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM