2009-09-15 15 views
7

Tengo 2 matrices con valores de tiempo en el mismo. Están en el siguiente formato. mm: ss: cientos de segundos Quiero obtener la diferencia entre los dos [últimos objetos] en las matrices. NSDate no funciona porque el último valor está en cientos de segundo.Cómo obtener la diferencia de tiempo en iPhone

Una pregunta. Si la segunda fecha es más grande que la primera ¿me dará un número negativo como -01: 10: 00?

+0

no, no funciona para mí. –

+0

No debe copiar las respuestas a su pregunta. Si una respuesta necesita aclaración, usted comenta la respuesta y el autor de la respuesta responderá. La solución que le he dado debería ser suficiente para orientarlo en la dirección correcta. La documentación de NSDateFormatter le informará todo lo que necesita saber sobre los tiempos de análisis, y la documentación de NSDate le informará todo lo que necesita saber para encontrar la diferencia entre los tiempos, incluido el comportamiento de fechas idénticas e intervalos de tiempo negativos. –

+0

Vaya, fue más que suficiente. Me disculpo por no seguir el protocolo. –

Respuesta

36

Su problema tiene dos partes, al analizar el tiempo y conseguir la diferencia:

NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; 
[dateFormatter setDateFormat:@"mm:ss:SS"]; 

NSDate* firstDate = [dateFormatter dateFromString:@"01:00:00"]; 
NSDate* secondDate = [dateFormatter dateFromString:@"01:02:00"]; 

NSTimeInterval timeDifference = [secondDate timeIntervalSinceDate:firstDate]; 
+2

NSTimeInterval interval = [secondDate timeIntervalSinceDate: firstDate]; –

1

NSDate debería funcionar para usted, use timeIntervalSinceDate:, que devuelve un intervalo de tiempo que tiene una precisión de milisegundos.

+1

Actualmente es una precisión de menos de milisegundos. Sin embargo, está representado en SEGUNDOS. – DanM

Cuestiones relacionadas