現在の時刻を比較して、配列から最も近い時刻を見つけたいと思います。(つまり、現在の時刻が午前 10:00 の場合、この場合、午前 9:00、午前 9:50、午前 9:30 の配列があります。これから午前9時50分を取得したい。どうすればこれを達成できますか? 配列内のオブジェクトのインデックス値を変更したくありません。
質問する
277 次
1 に答える
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];
}
}
于 2012-05-25T10:40:11.490 に答える