0

times( ) の配列がありHH:mm:ssます。どれが大きく、どれが経過したかを調べるにはどうすればよいですか? 昇順で並べ替えることができれば素晴らしいことです。

4

2 に答える 2

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昇順でソートされた日付オブジェクトが含まれるようになりました。

于 2012-11-26T12:32:55.233 に答える
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:)];
于 2012-11-26T13:45:13.173 に答える