需要根据当前时间找到最近的时间

时间:2012-05-25 10:07:20

标签: iphone

我想从数组中找到最近的时间与当前时间的比较。(即)如果当前时间是上午10:00,在这种情况下有一个数组它有9:00 am,9:50am,9 :30AM。 从这个我想得到上午9:50。我怎样才能实现这一目标?我不想改变数组中对象的索引值。

1 个答案:

答案 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];
            }
      }