2010-04-01 22 views

Respuesta

2

Ver this question.

respuesta aceptada por Brian Ramsay es:

Dadas 326,4 segundos, pseudo-código:

minutes = floor(326.4/60) 
seconds = round(326.4 - minutes * 60) 

Si imprime con %02d, obtendrá por ejemplo, 03:08 si bien el número es inferior a 10.

+0

con "% 2d" obtendría "3: 8", desea % 02d en cambio para obtener el cero inicial. – progrmr

+0

Gracias por señalar esto @progrmr; No he vuelto a mirar esta respuesta desde hace tiempo para ver el desequilibrio. –

30
NSTimeInterval interval = 326.4; 
long min = (long)interval/60; // divide two longs, truncates 
long sec = (long)interval % 60; // remainder of long divide 
NSString* str = [[NSString alloc] initWithFormat:@"%02d:%02d", min, sec]; 

% 02d El especificador de formato le da un número de 2 dígitos con un cero.

Nota: esto es solo para valores positivos de intervalo.

+0

¡Gracias! Esto es perfecto – daidai

+0

simplemente tome el valor absoluto del intervalo, luego haga los cálculos para que también funcione para los valores negativos. +1 para una buena solución! – Sam

Cuestiones relacionadas