KIPRIassistant

Повторяющиеся напоминания и проблема 31 числа

Чем «каждые две недели» отличается от «по вторникам», что приложение обязано делать 31 числа в феврале и почему пропущенный повтор нельзя показывать пачкой просроченных.


Повтор - самая скучная функция в напоминаниях и самая ломкая. Пока речь про “каждый день в восемь”, всё очевидно. Стоит сказать “каждое 31 число”, и начинается календарная арифметика, в которой ошибаются даже большие приложения.

Четыре типа повтора, которых хватает почти всем

Ежедневно. Лекарство, зарядка, вода. Самый частый и самый бесполезный, если поставить его на дело, которое на самом деле делается через раз.

По будням. Отдельный тип, а не “еженедельно с пятью галочками”, потому что просят его чаще всего остального: рабочие созвоны, дорога, обед.

Еженедельно по выбранным дням. Вторник и четверг - тренировка. Воскресенье - звонок родителям.

Ежемесячно и ежегодно. Счётчики, страховка, техосмотр, дни рождения.

Всё остальное - “каждые три дня”, “каждый второй вторник месяца”, “по чётным неделям” - существует, но нужно единицам. Когда приложение выкатывает такой конструктор на первый экран, оно усложняет жизнь всем ради меньшинства.

Что делать 31 числа, когда его нет

Вы поставили напоминание на 31 число. Пришёл февраль. Тридцать первого февраля не бывает. У приложения три варианта, и они дают разный результат.

Пропустить месяц. Формально честно, практически ужасно: напоминание про оплату аренды пропало именно в том месяце, когда оно было нужно.

Сдвинуть вперёд, на 1 марта. Тоже плохо: платёж уезжает за границу месяца, и в отчётности появляется месяц с двумя платежами и месяц без.

Сдвинуть на последний день месяца. Это единственный вариант, который совпадает с тем, что человек имел в виду. Говоря “31 числа”, он почти всегда имеет в виду “в конце месяца”. Так сделано в напоминаниях KIPRI: 31 января, 28 февраля, 31 марта. Стандарт календарных повторов RFC 5545, кстати, поступает иначе: несуществующую дату вроде 30 февраля он велит просто пропустить, а «последний день месяца» задаётся в нём отдельным правилом. Поэтому один и тот же повтор в разных календарях может вести себя по-разному.

Отдельно стоит 29 февраля. Событие раз в четыре года выглядит логично для программиста и обидно для человека: если это день рождения, поздравлять надо каждый год. Здесь правильный ответ - 28 февраля в невисокосные годы, и никак иначе.

“Каждые две недели” и “по вторникам” - это не одно и то же

Разница видна, когда повтор один раз сбивается.

“По вторникам” привязано к дню недели. Пропустили - следующий всё равно вторник, сетка не поплыла.

“Каждые 14 дней” привязано к дате последнего срабатывания. Здесь важно, от чего считать: от запланированного времени или от того момента, когда вы отметили выполнение. Для стрижки правильнее второе (стриглись на четыре дня позже - следующая тоже сдвигается). Для оплаты счёта правильнее первое, счёт не подстраивается под вашу занятость.

Приложения редко объясняют, какой вариант у них внутри. Проверить можно за один цикл: отметьте повторяющееся дело на день позже срока и посмотрите, куда встала следующая дата.

Если нужен именно повтор раз в две недели или по вторникам и четвергам, его можно собрать в конструкторе повторов: он покажет ближайшие даты и отдаст файл для календаря телефона.

Пропущенный повтор нельзя копить

Телефон лежал разряженным трое суток. Приложение включается и обнаруживает, что за это время должно было сработать три ежедневных напоминания, два еженедельных и одно про счёт.

Показать все шесть - худшее, что можно сделать. Человек получает шторку, полную просроченного, и первым же движением смахивает её целиком, вместе с тем единственным, что было важно.

Разумное поведение: показать одно свежее уведомление про текущий цикл, а остальные пометить пропущенными внутри приложения, где на них можно посмотреть спокойно. Прошлое уже не спасти, а вот сегодняшний день ещё можно.

Что реально стоит повторять

Повтор хорошо ложится на дела с внешним ритмом: платежи, показания счётчиков, лекарства, мусор, поливка, звонки родителям, продление подписок и документов.

Повтор плохо ложится на дела с внутренним ритмом: “разобрать почту”, “убраться”, “заняться английским”. Такое напоминание срабатывает независимо от того, сделали вы это вчера или нет, и через две недели вы перестаёте его читать. Для этого есть привычки со счётчиком серии, которые считают факт выполнения, а не факт наступления времени.

Разница простая: напоминание говорит “пора”, привычка спрашивает “сделал ли”. Спутать их - и получите ежедневный звонок, который вы научились игнорировать за неделю.

Статья помогла?

Все записи

Забирайте Кипри себе

На бесплатном тарифе работает всё приложение целиком. Ограничения начинаются там, где начинается серьёзный объём.

Новости и промокоды выходят в Telegram-канале