Один из методов расчёта дня недели по дате без использования календарей — использование формулы: День недели = (день месяца + код месяца + код года) % 7. lifehacker.ru
Алгоритм расчёта: lifehacker.ru
- Запомнить код месяца. lifehacker.ru Каждому месяцу присвоена цифра от 0 до 6. lifehacker.ru Для обычных годов это значение будет неизменным, а для високосного есть исключения: в январе и феврале от исходной цифры нужно отнять единицу. lifehacker.ru
- Определить, с каким годом нужно работать. lifehacker.ru Для этого нужно разделить год на 4: если в результате получилось число с остатком, год считается обычным, а если без — високосным. lifehacker.ru
- Вычислить код года. lifehacker.ru Две последние цифры года делятся на 12, затем остаток этого деления делится на 4. lifehacker.ru Полученные цифры — результат деления на 12, остаток этого деления и результат деления на 4 — складываются. lifehacker.ru Остаток от деления на 4 не учитывается. lifehacker.ru
- Сложить индекс года, индекс месяца и число. lifehacker.ru
- Полученное число разделить на 7. lifehacker.ru Остаток от деления и будет днём недели. lifehacker.ru
Ещё один метод — использование «подобных месяцев». ru.wikipedia.org Это месяцы календарного года, которые начинаются в один и тот же день недели. ru.wikipedia.org Например, сентябрь и декабрь соответствуют друг другу, потому что 1 сентября приходится на тот же день, что и 1 декабря. ru.wikipedia.org