найти NSDate в NSArray, у которого есть время суток после заданного времени (например, 8 вечера)? - PullRequest
2 голосов
/ 20 марта 2011

Есть ли в Objective-C быстрый способ идентификации NSDate в NSArray, у которого есть время суток после заданного времени (например, 8 вечера)?

Я не вижу ничего, кроме как вручную пройтись по каждой NSDate в массиве, а затем использовать NSDateComponents для выделения часа / минуты / секунды ... Даже не уверен, есть ли простой способ получитьвремя от NSDate таким образом, что представляет собой долю от 24 часов, поскольку это может немного помочь.(например, 18:00 будет 18/24 = 0,75 в этом случае)

Ответы [ 2 ]

3 голосов
/ 20 марта 2011

Нет необходимости взламывать NSDateComponents.

NSTimeInterval interval = [date1 timeIntervalSinceDate:date2];
if (interval > 0) {
    // date2 is earlier
} else {
    // date1 is earlier
}

Теперь вы можете представить целевое время (например, 8 вечера) с date2 и сравнить с ним все даты массива.

1 голос
/ 20 марта 2011

Сам не пробовал, но, наверное,

- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate

это то, что вы ищете.

...