2010-07-15 5 views
0

comment puis-je, donné deux fois en HH: mm: ss comparer alors et déterminer quelle est la dernière heure.iphone - comparer deux fois

12:00:00 & 14:00:00

Comment savoir que 14:00:00 est le temps plus tard

Répondre

1

Regardez dans NSDateFormatter (initWithDateFormat:allowNaturalLanguage:, dateWithString) pour transformer vos chaînes d'entrée en NSDate instances. Ensuite, utilisez des méthodes comme earlierDate: ou compare: sur les résultats NSDate.

+0

ok merci! Je regarderai – Kenneth

1

Si vous travaillez dans les mêmes fuseaux horaires (ouais, cela ajoute des complications), il est généralement plus facile de convertir ces chaînes en objets NSDate, puis de les comparer directement. Il y a quelques détails sur vos conversions de NSDate et objets NSCalendar à http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/DatesAndTimes/DatesAndTimes.html

Il y a une autre question SO avec le « comment faire » à Converting a string to an NSDate

1

Pour ajouter aux réponses précédentes, si vous avez en fait deux NSStrings avec @ "12:00:00" et @ "14:00:00" vous pourriez sortir avec:

NSString *timeA, *timeB; // <-- these are your two times in the format 
    // HH:mm:ss where HH is 24h format (no am/pm) and midnight is 00 
    // and you always have two digits (i.e. 12:3:50 for 3m50s past 12 is 
    // always shown as 12:03:50) ... 
BOOL timeAIsSooner = [[[timeA componentsSeparatedByString:@":"] 
     componentsJoinedByString:@""] intValue] 
    < [[[timeB componentsSeparatedByString:@":"] 
     componentsJoinedByString:@""] intValue];