2009-09-15 16 views
7

Ho 2 matrici con valori di tempo. Sono nel seguente formato. mm: ss: centinaia di sec. Voglio ottenere la differenza tra i due [lastObjects] negli array. NSDate non funziona perché l'ultimo valore è in centesimi di secondo.Come ottenere la differenza di orario in iPhone

Una domanda. Se la seconda data è più grande della prima, mi darà un numero negativo come -01: 10: 00?

+0

no non funziona per me. –

+0

Non dovresti copiare le risposte nella tua domanda. Se una risposta ha bisogno di chiarimenti, si commenta la risposta e l'autore della risposta risponderà. La soluzione che ti ho dato dovrebbe essere sufficiente per indirizzarti nella giusta direzione. La documentazione di NSDateFormatter ti dirà tutto ciò che è necessario sapere sui tempi di analisi e la documentazione di NSDate ti dirà tutto ciò che è necessario sapere per trovare la differenza tra i tempi, compreso il comportamento di date identiche e intervalli di tempo negativi. –

+0

Whoops, era più che sufficiente. Mi scuso per non aver seguito il protocollo. –

risposta

36

Il vostro problema ha due parti, l'analisi del tempo e ottenere la differenza:

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

Intervallo NSTimeInterval = [secondDate timeIntervalSinceDate: firstDate]; –

1

NSDate dovrebbe funzionare per voi, utilizzare timeIntervalSinceDate:, che restituisce un intervallo di tempo che ha precisione millisecondo.

+1

In realtà è una precisione inferiore al millisecondo. Tuttavia, è rappresentato in SECONDI. – DanM

Problemi correlati