这就是你想要的。1 分钟 = 60 秒,因此您将秒除以 60。您的问题是您需要在 python 中除以 60.0,以便获得确切的值(浮点值)。一旦你有了这个,你取最小的整数值 ( math.floor
),例如 150 秒是 2.5 分钟,所以你需要 2 分钟,2 分钟是 120 秒,你从 150 中删除你得到 30。这是剩余的秒数。你用相同的推理数小时(60 分钟)
import sys
import math
def getSeconds(s):
l = s.split(":")
return int(l[0])*(60) + int(l[1])
def getTotalString(time_list):
total_secs = 0
for time_str in time_list:
total_secs += getSeconds(time_str)
total_mins = total_secs/60.0
mins = math.floor(total_mins)
secs = total_secs-mins*60
if mins<60:
return '%.2d:%.2d' % (mins, secs)
else:
hours = math.floor(mins/60.0)
mins = mins-60*hours
return '%.2d:%.2d:%.2d' % (hours, mins, secs)
if __name__ == '__main__':
print getTotalString(sys.argv[1:])
计算秒数总和的方法可以在 Python 中用一行代码完成:
total_secs = sum(getSeconds(time_str) for time_str in time_list)
将sum
计算列表(或迭代器)中数字的总和。您可以为其提供要添加的数字列表或数字生成器,即the number of seconds in each time string in the list
我希望我说得尽可能清楚和有启发性,但是您可以使用 datetime 模块的更简单的解决方案。
更新:这是 Python 2.x 而不是 Python 3。所以它可能无法按预期工作,但想法是一样的,语法是不同的。