2012-11-26 65 views
0

我有一個時間陣列(HH:mm:ss),如何找出哪個時間更大,哪些是經過?如果我可以按升序對它們進行排序,那將會很棒。在iPhone中的時間比較

+0

「時間陣列」 - 什麼表示? NSDate的? – 2012-11-26 12:28:40

+0

數組僅包含'hh:mm:ss'格式的時間。我從'NSDate'中截斷了它。 –

回答

1

如果你的時間是由串在HH:mm:ss格式給出,你可以將它們轉換爲NSDate的對象,並使用可變數組進行排序:

NSArray *timeStrings = // however you obtain it... 
NSMutableArray *sorted = [NSMutableArray array]; 
NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; 
[fmt setDateFormat:@"HH:mm:ss"]; 

for (NSString *dtStr in timeStrings) { 
    [sorted addObject:[fmt dateFromString:dtStr]]; 
} 

[sorted sortUsingSelector:@selector(compare:)]; 

現在sorted將包含日期對象進行排序asccending。

0
//COnvert Strings to Dates 
//Comparison with current time 
NSMutableArray *dates; 
for (NSDate *d in dates) { 
    if ([d compare:[NSDate date]]== NSOrderedAscending) { 
     NSLog(@"Future Time"); 
    }else if([d compare:[NSDate date]]== NSOrderedSame){ 
     NSLog(@"Present Time");    
    }else{ 
     NSLog(@"Past Time"); 
    } 
} 
// For sorting 
[dates sortUsingSelector:@selector(compare:)];