Вы можете сортировать свои записи по дате (например, в порядке возрастания). После этого вы можете рассчитать разницу в днях между всеми последующими датами, в основном diff[n] = dayDiff(dates[n], dates[n-1])
. Поэтому для каждой dates[n]
вы можете найти дату 7 дней от нее довольно быстро - просто сумма diffs
от n
до достижения конца массива (=> такой даты нет) ИЛИ сумма равна 7 (= > Вы нашли это) ИЛИ сумма больше 7 (=> такой даты нет).
Не пытайтесь использовать миллисекунды или что-то подобное, чтобы получить разницу в днях. Даты намного больше, чем миллисекунды от некоторой контрольной точки. Используйте NSCalendar
для этого
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *cs = [calendar components:NSDayCalendarUnit
fromDate:date1
toDate:date2
options:0];
NSInteger diffInDays = cs.days;