在NSArray中找到NSDate的,在给定时间(例如晚上8点)之后有一天的时间?

时间:2011-03-20 08:39:12

标签: iphone objective-c nsarray nsdate nsdatecomponents

在Objective-C中是否有一种快速的方法来识别NSArray中的NSDate,它在给定时间(例如晚上8点)之后有一天的时间?

除了手动遍历数组中的每个NSDate然后使用NSDateComponents打破小时/分钟/秒之外,我无法看到...甚至不确定是否有一种简单的方法来获取时间一个代表24小时的时间的NSDate,因为这可能会有所帮助。 (例如,在这种情况下,下午6点将是18/24 = 0.75)

2 个答案:

答案 0 :(得分:3)

无需突破NSDateComponents

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

现在您可以使用date2表示您的目标时间(例如,下午8点)并比较数组的所有日期。

答案 1 :(得分:1)

我自己没试过,但我想

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

是您正在寻找的。