Некоторые особенности алгоритма определения дня недели по дате:
- Использование формулы. 1 День недели = (день месяца + код месяца + код года) % 7. 1 Если день месяца всегда известен, то код месяца нужно запомнить, а код года — вычислить. 1
- Учёт високосных годов. 1 В январе и феврале от исходной цифры кода месяца для високосного года нужно отнять единицу. 1
- Учёт столетия. 1 В вычислении кода года используется соответствующая цифра столетия, на которое приходится дата. 1
- Дополнительное правило для январских и декабрьских дат високосного года. 1 Из итогового числа необходимо отнять 1. 1
Также существует алгоритм для определения дня недели по заданной дате для текущего года, который не требует больших вычислительных усилий и запоминания таблиц. 2 Для этого нужно знать, на какое число приходит первый понедельник каждого месяца. 2