我正在尝试编写一个Python脚本,输入秒数,并以周、天、小时、分钟和秒为单位得到结果。这是我有的,但我没有得到正确的答案。我做错什么了?
seconds = raw_input("Enter the number of seconds:")
seconds = int(seconds)
minutes = seconds/60
seconds = seconds % 60
hours = minutes/60
hours = seconds/3600
minutes = minutes % 60
days = hours/24
days = minutes/1440
days = seconds/86400
hours = hours % 60
hours = minutes % 60
hours = seconds % 3600
weeks = days/7
weeks = hours/168
weeks = minutes/10080
weeks = seconds/604800
days = days % 1
days = hours % 24
days = minutes % 1440
days = seconds % 86400
weeks = weeks % 1
weeks = days % 7
weeks = hours % 168
weeks = minutes % 10080
weeks = seconds % 604800
print weeks, 'weeks', days, 'days', hours, 'hours', minutes, 'minutes', seconds, 'seconds'
使用Python的datetime timedelta并支持毫秒或微秒。
从基本的转换原则来看:
做同样的事情要少一点噪音:
使用
divmod
函数返回除法结果和元组(division, remainder)
中的余数的更干净版本:基本上,这个解决方案最接近您的尝试,因为这是
divmod
所做的:相当于
在这里,我们基本上是在我们的时间内找到整周的数量,并保留这些周后剩下的。
你也可以从另一头走,让它更漂亮:
这背后的想法是,你的答案中的秒数是以分钟为单位除以后的余数;分钟是以小时为单位除以所有分钟后的余数。。。这个版本更好,因为你可以很容易地调整它到月,年等。。。
相关问题 更多 >
编程相关推荐