Мне нужно подсчитать последнюю полосу дней, но не могу понять, как это сделать. Например, я получил основные данные следующим образом:
|id| isPresent(Bool)| date(NSDate)|
|==|================|=============|
| 1| 0| 2016-02-11 |
| 2| 1| 2016-02-11 |
| 3| 1| 2016-02-12 |
| 4| 0| 2016-02-14 |
| 5| 1| 2016-02-15 |
| 6| 1| 2016-02-16 |
| 7| 1| 2016-02-16 |
Я пытаюсь проверить последние не представленные (isPresent = 0) дату до сегодняшнего дня и получить 2016-02-14 - так что я могу считать дни, это легко.
Но если я отмечаю 2016-02-14 как isPresented = 1 (как в таблице ниже), я получу последний не представленный 2016-02-11 - но это неверно, нет данных для 2016-02-13, поэтому isPresented для этой даты должно быть 0, и строка должна отсчитываться с этой даты
|id| isPresent(Bool)| date(NSDate)|
|==|================|=============|
| 1| 0| 2016-02-11 |
| 2| 1| 2016-02-11 |
| 3| 1| 2016-02-12 |
| 4| 1| 2016-02-14 |
| 5| 1| 2016-02-15 |
| 6| 1| 2016-02-16 |
| 7| 1| 2016-02-16 |
Я искал разные алгоритмы для строк или sql reuests для отсутствующих дат (sql-сервер, отображающий отсутствующие даты), но не могу понять, как использовать его в основных данных.
Я думаю о других данных, которые будут содержать полосу и обновления каждый раз, когда пользователь будет открывать приложение, но получил такую же проблему, что, если пользователь не открыл приложение.
Вывод: Мне нужно найти только количество дней подряд или дату, когда он сломается, поэтому для
Для первой таблицы: streak = 2 или breakDate = 2016-02-14 - я пробую это, но мое решение неверно, потому что вторая таблица
Для второй таблицы: streak = 3 или breakDate = 2016-02-13 - не может понять, как получить отсутствующую дату
Важное обновление: Там будут данные синхронизации облака, поэтому я не вижу никакого решения внутри приложения, действительно нужно найти отсутствующую дату или isPresented = 0 в coredatap >
p.s. Я использую swift, если вы можете помочь мне через быстрый, было бы здорово, но я также понимаю Obj-C. И извините за мой плохой английский