Мне очень, очень давно хотелось сделать абcолютно универсальный и независимый от компьютера календарь. Сделать его таким, чтобы рассчитать день недели по заданному дню было легко и просто на калькуляторе. И мне это сделать удалось. Календарь работает, начиная с 1901 года и заканчивая 2100.
§ Алгоритм расчета
A = [ 365.25 * (ГОД – 1) ] – получаем целое число A
Если при умножении на 365.25 у нас осталась дробная часть "0.75" – это значит, что год не високосный, иначе – високосный.
Получаем значение B из следующей таблицы
Янв
Фев
Мар
Апр
Май
Июн
Июл
Авг
Сен
Окт
Ноя
Дек
Не високосный
0
31
59
90
120
151
181
212
243
273
304
334
Високосный
0
31
59
91
121
152
182
213
244
274
305
335
Дней в месяце
31
28/29
31
30
31
30
31
31
30
31
30
31
День недели = (A + B + День + 5) / 7.
При делении необходимо узнать первую цифру после запятой, и по таблице определить день недели: