Меню сайта
Подписка
«Ярославский агрокурьер» на 2-е полугодие 2019 тел. редактора: 429-036
АК - Основная газета ДВ - Деловой вестник Альт-абон - подписка и развозка редакции Эл-абон - газета рассылается эл.почтой ПДФ-файлами Архив 2004-2019
Ссылки
Наш опрос
|
klnИсточник: http://www.genon.ru/GetAnswer.aspx?qid=0fecaff5-4fd3-4c96-ac83-4b80e91d4afe
Когда под рукой нет календаря, для того чтобы определить, какой сегодня день недели, можно воспользоваться следующим алгоритмом:
1. Обозначим число, месяц и год соответственно d, m и y. 2. Если m ≤ 2 (т.е. месяц январь или февраль), то год уменьшим на 1, а число увеличим на 3: y:= y–1; d:= d+3; 3. Теперь номер дня недели (w) вычисляется по следующей формуле: w:= 1 + [d + y + y/4 – y/100 + y/400 + (31m+10)/12] mod 7; (все операции деления — целочисленные, т.е. берется целая часть частного;mod — операция получения остатка от деления).
Результатом будет целое число в диапазоне от 1 до 7, соответствующее дням недели от воскресенья до субботы (1 — понедельник, 2 — вторник, 3 — среда, 4 — четверг, 5 — пятница, 6 — суббота, 7 — воскресенье).
Данный алгоритм получен модификацией широко
Преимущества модифицированного алгоритма:
Алгоритм работает в пределах применимости григорианского календаря.
Примеры:
1. Текущая дата: 27.09.2009 d = 27; m = 9; y = 2009; Поскольку m > 2, сразу переходим к п.3 w = 1 + [27 + 2009 + 2009/4 – 2009/100 + 2009/400 + (31*9+10)/12] mod 7 = = 1 + [27 + 2009 + 502 – 20 + 5 + 24] mod 7 = 1 + 6 = 7 — воскресенье.
2. Текущая дата: 31.01.1968 d = 31; m = 1; y = 1968; Поскольку m ≤ 2, введем коррекцию: y = 1967; d = 34; Теперь вычисляем: w = 1 + [34 + 1967 + 1967/4 – 1967/100 + 1967/400 + (31*1+10)/12] mod 7 = = 1 + [34 + 1967 + 491 – 19 + 4 + 3] mod 7 = 1 + 2= 3 — среда.
|
Мини-чат
Телефоны
Даты и События
Поиск
|
|||||||||||||||