От миллисекунд до часов, минут, секунд и миллисекунд

Мне нужно перейти от миллисекунд к кортежу (час, минуты, секунды, миллисекунды), представляющему одно и то же количество времени. Например:

10799999ms = 2h 59m 59s 999ms

Следующий псевдокод — единственное, что я смог придумать:

# The division operator below returns the result as a rounded down integer
function to_tuple(x):
    h = x / (60*60*1000)
    x = x - h*(60*60*1000)
    m = x / (60*1000)
    x = x - m*(60*1000)
    s = x / 1000
    x = x - s*1000
    return (h,m,s,x)

Я уверен, что должна быть возможность сделать это умнее/элегантнее/быстрее/ более компактный.

38
задан Mads Skjern 9 July 2015 в 06:19
поделиться