Что считает этот калькулятор
Калькулятор ближайшего дня недели показывает, на какую календарную дату выпадает ближайший нужный вам день недели — например, «когда следующая пятница?» — отсчитывая от любой выбранной даты. Заодно он сообщает, сколько дней осталось до этой даты. Это удобно, когда нужно запланировать повторяющиеся дела, организовать встречи «каждый вторник», вести обратный отсчёт до еженедельного дедлайна или выстраивать привычки, привязанные к определённому дню недели.
Как пользоваться
Выберите начальную дату (по умолчанию — сегодня), укажите нужный день недели из выпадающего списка и решите, учитывать ли саму начальную дату, если она уже выпадает на этот день. В результате вы увидите количество дней до искомой даты и саму ближайшую дату с разбивкой по году, месяцу и дню, а также компактный код в формате ГГГГММДД.
Как работает формула
Дни недели нумеруются от воскресенья = 0 до субботы = 6. Калькулятор определяет день недели вашей начальной даты, а затем вычисляет:
$$\text{daysAhead} = \big((\text{целевой} - \text{текущий}) \bmod 7 + 7\big) \bmod 7$$
Двойное взятие остатка (mod) удерживает результат в диапазоне 0–6 даже тогда, когда разность отрицательна. Ближайшая дата — это просто начальная дата плюс daysAhead. Если вы не учитываете начальную дату, а она уже выпадает на нужный день недели (\(\text{daysAhead} = 0\)), калькулятор перескакивает на неделю вперёд — к следующему такому дню (через 7 дней).
Разбор примера
Допустим, начальная дата — среда, 1 января 2025 года. Среда — это день недели под номером 3. Вам нужно ближайшее воскресенье (день недели 0). $$\text{daysAhead} = \big((0 - 3) \bmod 7 + 7\big) \bmod 7 = (-3 + 7) \bmod 7 = 4$$ Значит, ближайшее воскресенье — это 1 января + 4 дня = 5 января 2025 года.
Частые вопросы
Что, если начальная дата уже выпадает на нужный день недели? По умолчанию калькулятор перескакивает на следующую неделю (через 7 дней). Поставьте галочку, чтобы учитывать саму начальную дату — тогда останется 0 дней.
Какая используется нумерация дней недели? От воскресенья = 0 до субботы = 6, в том же порядке, что и в выпадающем списке.
Учитываются ли переходы через месяцы и годы? Да — арифметика дат корректно переносится через границы месяцев и лет, включая високосные годы.