[英]How get hours:minutes
我有一个脚本(不是我自己的),它计算我的satreceiver中的电影长度。 它以分钟为单位显示长度:秒
我希望在几个小时内完成:分钟
我需要做些什么改变?
这是有关脚本的和平:
if len > 0:
len = "%d:%02d" % (len / 60, len % 60)
else:
len = ""
res = [ None ]
我已经把时间除以3600而不是60但是不能得到分钟......
提前致谢
彼得
你可以使用timedelta
from datetime import timedelta
str(timedelta(minutes=100))[:-3]
# "1:40"
hours = secs / 3600
minutes = secs / 60 - hours * 60
len = "%d:%02d" % (hours, minutes)
或者,对于更新版本的Python:
hours = secs // 3600
minutes = secs // 60 - hours * 60
len = "%d:%02d" % (hours, minutes)
那么len电影中的秒数? 这个名字不好。 Python已经使用了len这个词来代替其他东西。 更改。
def display_movie_length(seconds):
# the // ensures you are using integer division
# You can also use / in python 2.x
hours = seconds // 3600
# You need to understand how the modulo operator works
rest_of_seconds = seconds % 3600
# I'm sure you can figure out what to do with all those leftover seconds
minutes = minutes_from_seconds(rest_of_seconds)
return "%d:%02d" % (hours, minutes)
你需要做的就是找出应该看起来像是什么minutes\\_from\\_seconds()
如果您仍然感到困惑,请对模运算符进行一些研究。
这里有一个很好的答案https://stackoverflow.com/a/20291909/202168 (此问题的后续副本)
但是,如果您在日期时间字符串中处理时区偏移,那么您还需要处理负数小时,在这种情况下,Martijn答案中的零填充不起作用
例如,它将返回-4:00
而不是-04:00
要解决此问题,代码会变得稍长,如下所示:
offset_h, offset_m = divmod(offset_minutes, 60)
sign = '-' if offset_h < 0 else '+'
offset_str = '{}{:02d}{:02d}'.format(sign, abs(offset_h), offset_m)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.