我想从数组中找到最近的时间与当前时间的比较。(即)如果当前时间是上午10:00,在这种情况下有一个数组它有9:00 am,9:50am,9 :30AM。 从这个我想得到上午9:50。我怎样才能实现这一目标?我不想改变数组中对象的索引值。
答案 0 :(得分:2)
解析数组,将每个值与当前时间进行比较,存储数组中时间与当前时间之间的秒数增量以及数组中值的索引。检查下一个是否具有较小的时间增量并且是否为值和索引。在解析结束时,您拥有最接近的时间戳和时间增量的索引。
操作
NSTimeInterval interval = 3600*24; // just a big number
NSUInteger indexOfDate;
// I didnt checked if the delta can be negative in this case think aboud absolute number
for (NSDate * date in dateArray) {
if(abs([date timeIntervalSinceDate:[NSDate date]]) < interval) {
interval = abs([date timeIntervalSinceDate:[NSDate date]]);
indexOfDate = [dateArray indexOfObject:date];
}
}