Necesito pasar de milisegundos a una tupla de (hora, minutos, segundos, milisegundos) que representa la misma cantidad de tiempo. Por ejemplo:De milisegundos a horas, minutos, segundos y milisegundos
10799999ms = 2h 59m 59s 999ms
El siguiente pseudo-código es la única cosa que podía llegar a:
# 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)
Estoy seguro de que debe ser posible hacerlo más inteligente/más elegante/más rápido/más compacto.
se puede utilizar el operador de módulo (% en C y amigos) para simplificar ligeramente los cálculos de x (p. ej., x = x% (60 * 60 * 1000)) – fvu
Asegúrese de no tener dicha funcionalidad ya en la biblioteca estándar del idioma que utiliza. –