开发者

How get hours:minutes

I have a script here (not my own) which calculates the length of a movie in my satreceiver. It displays the length in minutes:seconds

I want to have that in hours:minutes

What changes do I have to make?

This is the peace of script concerned:

if len > 0:
    len = "%d:%02d" % (len / 60, len % 60)
else:
    len = ""

res =开发者_如何转开发 [ None ]

I already got the hours by dividing by 3600 instead of 60 but can't get the minutes...

Thanks in advance

Peter


You can use 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)

Or, for more recent versions of Python:

hours = secs // 3600
minutes = secs // 60 - hours * 60

len = "%d:%02d" % (hours, minutes)


So len the number of seconds in the movie? That's a bad name. Python already uses the word len for something else. Change it.

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)

All you need to do is figure out what minutes\_from\_seconds() is supposed to look like. If you're still confused, do a little research on the modulo operator.


There is a nice answer to this here https://stackoverflow.com/a/20291909/202168 (a later duplicate of this question)

However if you are dealing with timezone offsets in a datetime string then you need to also handle negative hours, in which case the zero padding in Martijn's answer does not work

eg it would return -4:00 instead of -04:00

To fix this the code becomes slightly longer, as below:

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)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜