Калькулятор дня недели
Результат
День недели
- День года
- 262 дни
- Дней до конца года
- 103 дни
- Номер недели ISO
- 38
Дата сама задаёт свой день недели. 19 сентября 2026 года — суббота в любой стране, и никакие часы этого не изменят. Но реализация, которая переводит дату через местный часовой пояс, тихо вернёт предыдущий день — и только для части пользователей. Эта страница выдаёт из одной даты четыре числа: день недели, позицию даты в её собственном году, сколько дней осталось до конца года и номер недели ISO, который и удивляет людей, потому что неделя ISO принадлежит году, в котором лежит её четверг, а не году, в котором лежит её понедельник.
Формула
день недели = (целых дней с 1 января 1970 года + 4) mod 7, где 0 — воскресенье
- номер дня
- Целые дни с 1 января 1970 года, которое было четвергом — отсюда константа 4
- день года
- Позиция даты в её собственном году, где 1 января — это 1
- дней до конца года
- Сколько дней осталось в году: 365 или 366 минус эта позиция
- номер недели
- Неделя, содержащая первый четверг года, нумеруется от 1 до 53
Считайте здесь, чтобы закрыть вопрос с датой, получить номер недели, которого ждёт график, или увидеть, сколько дней осталось от выбранного дня до конца года. День недели — простая часть; расхождения начинаются с номера недели, потому что неделя ISO принадлежит году, содержащему её четверг, и поэтому 1 января 2021 года отвечает неделей 53 2020 года. Чего страница не умеет — переводить между календарями: каждая дата здесь пролептический григорианский календарь, тот самый, которым историки пользуются для дат до 1582 года и в котором десять выброшенных дней октября 1582 года просто не случались.
Разобранные примеры
19 сентября 2026 г.
- Целых дней с 1 января 1970 года: 20715. Прибавляем смещение в 4 дня, получаем 20719, а 20719 mod 7 = 6 — воскресенье это 0, значит, дата суббота
- День года: восемь завершённых месяцев держат 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 = 243 дня, и 243 + 19 = 262
- Дней до конца года: 2026 год невисокосный, в нём 365 дней, и 365 − 262 = 103
- Неделя ISO: понедельник той недели — 14 сентября 2026 г., а он попадает на 38-ю неделю года ISO
Четыре ответа из одной даты. День недели можно сверить с любым бумажным календарём; расходится между инструментами как раз номер недели, потому что неделя определяется своим четвергом, а не днём, с которого начинается.
1 января 2021 г. — январская дата в неделе 53
- 1 января 2021 г. — пятница, поэтому неделя с этой датой идёт с понедельника 28 декабря 2020 г. по воскресенье 3 января 2021 г.
- Неделя ISO принадлежит году, содержащему её четверг, а этот четверг — 31 декабря 2020 г.
- Значит, неделя берёт последний номер 2020 года, то есть 53: дата 2021 года отвечает неделей предыдущего года
- День года и дни до конца года ничего этого не замечают: там 1 и 364, потому что они считают внутри календарного года
Это та граница, ради которой номер недели вообще попал на страницу. В 2020 году 53 недели ISO, в 2021 — 52, и первые три дня января 2021 года принадлежат счёту предыдущего года.
29 февраля 2024 г. — високосный день
- 2024 делится на 4 и не делится на 100, поэтому год високосный и в феврале 29 дней
- День года: 31 день января плюс 29 — это 60, тогда как в 2023 году такой даты нет, и позицию 60 занимает 1 марта
- Дней до конца года: 366 − 60 = 306
- День недели: 29 февраля 2024 г. — четверг, а понедельник его недели — 26 февраля
Високосный день сдвигает каждую следующую позицию на единицу, поэтому день года — тот ответ на этой странице, который нельзя просто прочитать по календарю невисокосного года.
Ограничения
Каждая дата здесь — пролептический григорианский календарь: календарь, продолженный назад, а не тот, которым люди действительно пользовались, поэтому в октябре 1582 года не видно разрыва, а у 1000 года такой день недели, какого не узнает ни одна летопись. Номер недели — ISO: недели начинаются в понедельник и принадлежат году, содержащему их четверг. Американское соглашение, где неделя начинается в воскресенье и первая неделя остаётся внутри января, разойдётся с этим на нескольких датах каждого года. Часовые пояса здесь ни при чём, потому что день недели даты от них не зависит.
Частые вопросы
- Как найти день недели для даты?
- Считайте целые дни от известной точки отсчёта и берите остаток от деления на семь. 1 января 1970 года было четвергом, поэтому дата через 20715 дней даёт 20715 + 4 = 20719, а 20719 mod 7 = 6, то есть суббота. Любой календарный приём, обходящий эту арифметику, на самом деле делает тот же счёт.
- Что такое номер недели ISO?
- Это нумерация из ISO 8601: недели начинаются в понедельник, а неделя 1 — та, в которой лежит первый четверг года. Такое правило привязывает каждую неделю ровно к одному году, поэтому дата в начале января может принадлежать неделе 52 или 53 предыдущего года. Это нумерация, которой пользуется большая часть Европы и большинство программ для планирования.
- Почему январская дата показывает неделю 53?
- Потому что неделя ISO принадлежит году, содержащему её четверг, а не её понедельник. Неделя 1 января 2021 года шла с понедельника 28 декабря 2020 г. по воскресенье 3 января 2021 г., а её четверг попал в 2020 год, поэтому она взяла последний номер 2020 года — 53. На другом конце то же самое: 31 декабря 2026 года — четверг, поэтому оно сидит в неделе 53 2026 года.
- Влияют ли время суток или часовой пояс на ответ?
- Нет, у календарной даты есть день недели независимо от того, где её читают, и этот инструмент никогда не переводит дату через местный часовой пояс. Настоящий отказ выглядит иначе: реализация собирает дату местными методами, а потом читает день обратно — и возвращает предыдущий день для всех, кто западнее машины, сделавшей расчёт, и только для них.
- Зачем нужен день года?
- Это позиция даты в её собственном календарном году, где 1 января — это 1, а 31 декабря — 365 или 366. Порядковыми датами записывают сроки в некоторых отраслях — день 262 2026 года это 19 сентября, — а дни до конца года получаются простым вычитанием этой позиции из длины года, поэтому два числа всегда складываются в длину года.
Источники
- UTS #35: Unicode Locale Data Markup Language, Part 4: Dates — Unicode Consortium
- ISO 8601: International Standard Date and Time Notation — Markus Kuhn, University of Cambridge