Вычисление дня недели в уме. Тренируем мозги (вычисление дня недели по дате) Узнать какой был день недели дате

Существует множество способов прокачать мозг. Задачи «n-back» или мобильные приложения для тренировки навыка быстрого счета в уме. Но эти задачи оторваны от текущей реальности, а хотелось бы прокачать мозг практичным навыком.

Зачем? Ведь можно быстро посчитать на гаджете. Увы, совсем не быстро, т.к. потребуется время на поиски и активацию гаджета, поиск приложения, ввод даты, осознание полученного результата. А еще можно друзей/подруг порадовать своими внезапно появившимися экстраординарными способностями. Кстати, друзья быстро осознают удобство использования вечного календаря с голосовым интерфейсом.

Разве это возможно? Как-то раньше обходились без компьютеров. В одной из тв-передач «ищем таланты» показывали натренированного трехлетнего ребенка, который может вычислять произведение трехзначных чисел (пощадите своих детей). Впрочем, взрослые уже не дети и их мозг частично кристаллизован, в смысле слабо обучаем. Значит нужно запоминать как можно меньше и максимально задействовать имеющиеся навыки.

В алгоритмике часто объемы вычислений могут быть скомпенсированы объемами памяти. Т.е. чем больше оперативки доступно, тем меньше потребуется вычислений. Аналогично работает мозг – чем больше мы запомнили, тем быстрее ищем решение. Запомнили несколько формул для сборки кубика Рубика – соберете за пару минут (после длительной тренировки). Запомнили полторы сотни формул – соберете за пару десятков секунд. Мировой рекорд 2013 года – 8.18 сек. Еще раз: чем больше помним – тем быстрее решение.

Алгоритм
Нужно взять смещение (день недели) первого дня года (y) и смещение месяца (m). Затем вычислить сумму y+m+d, где d – день месяца, и найти остаток от деления на 7. Получим номер дня недели.
Что нужно запомнить

Размышления

В целом, достаточно запомнить все дни недели всех 28 лет (периодичность пропорциональна произведению периодов високосных лет и дней недели). Последовательность в 10k. Это довольно много.

Если добавить одну операцию сложения, то будет достаточно запомнить лишь пару рядов чисел:

M(month) = { 6 2 2 5 0 3 5 1 4 6 2 4 }, с января по декабрь

Y(year) = { 6 0 1 2 4 5 6 0 2 3 4 5 0 1 2 3 5 6 0 1 3 4 5 6 1 2 3 4 }, с 1988 по 2015

Смещения для месяца берутся из календаря некоторого года. Смещение месяца равно количеству серых квадратов в начале месяца. Например, не високосный 2006 год. Смещение для этого года будет 0.

Все же запомнить смещения для всех лет и затем выполнять быстрый поиск по индексу довольно сложная когнитивная задача. Есть альтернативный путь – вычислить. Нужно взять две последние цифры года (+100 для XXI века) - Y. Далее найти ближайший прошлый високосный Yв. Взять dY = Y – Yв. Тогда смещение года можно вычислить

Y(Y) = (50 – Yв/2 + dY)

Недостаток формулы в том, что для 2004 и далее смещение будет отрицательным, а для начала и середины XX века двузначными, что слегка затрудняет вычисления в уме. Можно использовать разные формулы для каждого века, в которых учитываются только две младшие цифры года. Например, 12 для 2012г и 1912г.


XX: (50 – Yв/2 + dY) % 7 или (8 – Yв/2 % 7 + dY)
XXI: (7 – Yв/2 % 7 + dY)

В итоге может оказаться проще запомнить таблицу смещений в таком виде:

Смещение для года можно вычислить через сумму смещения ближайшего меньшего високосного года и его разницы с искомым годом. Семь цифр запомнить проще чем 28. К тому же, цифры расположены в убывающем порядке с шагом 2. (Да, да, (0 – 2) будет 5, помним про остаток от деления на 7). Можно запомнить цифры (6, 4, 2, 0, -2, -4, -6), что при вычислениях даст аналогичный результат. Года кратные 20 располагаются в косом квадрате 3х3 по схеме «ход конем» c 2000 годом в центре. Значения смещений месяцев и лет согласованы так, чтобы на 2000 год приходилось смещение 0. А шаг между соседними рядами 28 лет.

Например, для 2014 смещение будет y(2014) = y(2012) + 2 = 1 + 2 = 3. А день программиста 13 сентября 2014 года будет (y(2014) + m(сен) + 13) = (3 + 4 + 13) = 20 => 20 % 7 = 6, т.е. суббота.

Структурируем ряд смещений для месяцев. Значения удобно запоминать по сезонам: весна, лето, осень, зима.

Обратите внимание, что вдруг (?), в порядке сверху вниз и слева направо, цифры выстроились в возрастающий ряд (первая цветная таблица). Можно запоминать только остатки от деления на 7 (вторая цветная таблица) или для восстановления всей таблицы запомнить только разности (последняя таблица). Прибавляя 1 к 1, получим для марта 2, для июня 2+1=3, для сентября 3+1=4 и т.д. Одинаковые значения раскрашены в одинаковые цвета. Для быстрого поиска нам поможет вторая цветная таблица. Помним, что строки - это сезоны, начиная с весны. Это крайне непривычно. Но в древнем Риме год начинался именно с марта. Это отражено в названиях месяцев латинскими цифрами: Septem ber/Octo ber/Novem ber/Decem ber – 7/8/9/10, т.е. февраль был последним 12м месяцем года, к которому добавляли високосный день.

Важно!!! У программистов вечная проблема с потерянной единицей. В нашей задачке без этого не обошлось. Для января и февраля високосного года нужно вычитать единицу.

14 февраля 2012 = (y(2012)+m(фев)+14) - 1 = (1 + 2 +14) - 1 => 16 % 7 = 2, т.е. вторник.

Еще нужно помнить, что не все года что делятся на 4 будут високосными (исключения - 2100, 1900, 1800, ….). Соответственно, необходимо учесть смещение для века. Впрочем, даже если не учитывать последнее исключение можно безошибочно оперировать днями недели за XX и XXI века, что достаточно для большинства житейских случаев.

Немного оптимизации.
Вычисления можно производить в потоковом режиме. Обычно дату рождения (или любую другую дату) сообщают начиная с дня месяца, например, 23 декабря 1913 года. Т.е. в процессе сообщения даты можно частично вычислить искомую сумму 23 + m(дек) = 27 или даже 23 % 7 + m(дек) = 2 + 4 = 6 и затем уже задуматься y(1913) = y(1912) + 1 = 3. В итоге сообщить 30 % 7 = (6 + 3) % 7 = 2, вторник.

Часто приходится оперировать датами текущего года. Т.е. смещение года вы всегда будете помнить, т.к. от частого использования значение «закэшируется». Например, для 2014 смещение равно 3.

Что мы получили. Правила заполнения таблиц простые и вы скорее всего их запомнили и сможете воспроизвести себе шпаргалку в любом месте в любое время. Но для быстрого счета таблицы проще заучить целиком. Ведь мы не восстанавливаем таблицы сложения и умножения для расчета сдачи перед кассой. Эти таблицы «прошиты» еще в начальной школе. Для запоминания таблиц легче всего воспользоваться тренажером Week Brain Calc (Windows Phone).

После непродолжительной тренировки можно порадовать любимых своими уникальными способностями.

Учёные соотносят дни недели с планетами солнечной системы, тем самым характеризуя каждый день с точки зрения магии. Поэтому человек, родившийся в определённый день, также имеет свой характер, темперамент и призвание. Итак, чтобы определить, какими же чертами характера и возможностями наделён каждый из нас, нужно вычислить, какой день недели был в день рождения и какого его значение. Воспользовавшись бесплатным онлайн расчётом, можно узнать, как этот день влияет на характер, судьбу и магические способности.

Какой день недели был в день рождения? Рассчитать онлайн бесплатно:

Вы можете сами узнать, какой день недели был в любой день, и прочитать характеристику ниже:

Понедельник.

Этот день проходит под знаком Луны, поэтому людям понедельника присущи такие черты характера, как нерешительность и нервозность, они противоречивые по натуре, поэтому часто не могут добиться желаемых вершин. Общительны и эмоциональны. Обладают богатой фантазией. Многие из них одиноки по жизни, так как не готовы брать ответственность за кого-то. Что касается любовных отношений, то они верны и искренни.

Магические способности. В полнолуние могут загадывать желание, встав напротив открытого окна. Оно обязательно исполнится.

Вторник.

Этим днём управляет Марс - воинственная планета. Люди, рождённые в этот день, упрямы, напористы и часто агрессивны. Хотя нередко сомневаются в правильности своих действий и слов. Людям вторника нужен тот, кто сможет подставить своё сильное плечо в трудную минуту, это может быть кроткий и нежный человек, поэтому вторую половинку лучше выбирать из ненавязчивых парней или девушек, тогда союз будет долгий и счастливый.

Магические способности. Видеть вещие сны по заказу. Для этого нужно лечь до полуночи и попросить сон-предсказание. Вставать потом с кровати нельзя до утра.

Среда.

Правит этим днём Меркурий, поэтому люди, рождённые в среду, будут постоянно заниматься самосовершенствованием. Они консерваторы, им тяжело начинать что-то новое. Целеустремлённые, уже с малых лет чётко идут к поставленной цели. Но как только достигнутое будет получено, они начинают скучать и тогда дают выход негативу, накопившемуся за всё время. Затем снова ставят цель и чётко идут к ней. В браке, кстати, им тоже нужно иногда уходить от второй половинки в тихое и укромное место, откуда они вернутся спокойными и одухотворёнными, тогда отношения будут крепкими и стабильными.

Магические способности. Лечат своей энергетикой головные боли и успокаивают расшалившуюся нервную систему наложением ладоней.

Четверг.

Главенство в этот день передаётся Юпитеру, а это означает, что люди четверга - отличные организаторы и управленцы. Они лидеры по жизни, поэтому к ним и тянутся более слабые люди. Среди них много тех, кто упрям и несговорчив, эти качества доходят до абсурда. Дома они деспоты, поэтому идеальный брак возможен с ведомым и слабым. Они собственники, поэтому измену не прощают.

Магические способности. Хорошо развита интуиция, поэтому могут предсказывать будущее.

Пятница.

Венера - покровительница этого дня недели, поэтому люди, родившиеся в пятницу, оптимистичны и жизнерадостны, они кокетливы и даже в какой-то мере несерьёзны. В их доме всегда тепло и уютно, у них много друзей и знакомых. Однако, найти вторую половинку им тяжело, так как пятничные люди не могут жить в четырёх стенах - им нужна свобода, которая не каждому влюблённому понравится, поэтому ревнивцам лучше сразу же отказать от брака с пятничными особами.

Магические способности. Хорошо развит нюх на выгоду, поэтому эти люди никогда не живут в бедности. У них всегда есть деньги и стабильный заработок.

Суббота.

Рождённым в субботу покровительствует Сатурн, поэтому они могут многое выдержать. Эти люди трудолюбивы и умны, они неторопливы, но основательны. Не любят руководить, поэтому и не стремятся к карьерному росту, им ближе домашний уют. Но вот в семье они часто несчастны, так как считают, что брак - это навсегда, а значит и не нужно проявлять инициативу в поддерживании огня чувств. В партнёрах ценят рассудительность, остальные просто становятся для них изгоями. Часто они несчастны в молодости и довольны жизнью в зрелые годы.

Магические способности. Никогда не ошибаются в человеке, их первое впечатление о ком-то всегда верное.

Воскресенье.

Людям, рождённым в воскресенье, покровительствует Солнце, поэтому им всегда комфортно по жизни. Они активные и довольно успешные, хотя нельзя их назвать баловнями судьбы, так как довольно часто с ними происходят серьёзные проблемы. Причиной их является беспечность воскресных людей - они ленивы и необязательны. Среди них мало семейных, потому что им лень заводить семью, чтобы за кем-то ухаживать. Обычно они текут по течению, которое часто приносит их в нужное и прибыльное место. Этим людям нужно научиться трудолюбию и напористости. Добиться многого в жизни им помогает близкий человек, обладающий такими чертами, как рассудительность и властность.

Магические способности. Везучесть и умение угадывать номера лотерей, которой они часто и пользуются.

Определение дня недели по дате | Онлайн-тренажёр

Упражнение считается выполенным после 7 правильных ответов

Норма выполнения упражнения - 2 минуты

Для успешного выполнения упражнения ознакомьтесь с теорией

Определение дня недели по дате | Теория

Определить день недели по дате можно следующим образом:

  1. вычислить код дня недели, сложив порядковый номер дня в месяце, код месяца и код года, а затем сократить полученную сумму (если она превышает 6) до числа от 0 до 6 путём вычитания необходимого количества семёрок (или, другими словами, путём вычитания соответствующего числа, кратного семи, которое может равняться 7(7x1), 14(7x2), 21(7x3), 28(7x4), 35(7x5), 42(7x6) и т.д.);
  2. определить день недели по коду дня недели.

Дни недели и их коды

Месяцы и их коды

Для запоминания соответствий между месяцами и их кодами можно использовать мнемонические техники.

Например, январь легко ассоциировать с числом 6, так как в слове «январь» 6 букв, а февраль можно сопоставить с числом 2 на основании того, что февраль является вторым по счёту месяцем в году. Но не забывайте уменьшать код января и февраля на единицу, если год является високосным.

Можно использовать и свои личные ассоциации. Например, если в марте у вас родился второй ребёнок, то вам будет легко ассоциировать март с числом 2.

Годы XXI века и их коды *

Год К. Год К. Год К. Год К.
2000 0 2025 3 2050 6 2075 2
2001 1 2026 4 2051 0 2076 4
2002 2 2027 5 2052 2 2077 5
2003 3 2028 0 2053 3 2078 6
2004 5 2029 1 2054 4 2079 0
2005 6 2030 2 2055 5 2080 2
2006 0 2031 3 2056 0 2081 3
2007 1 2032 5 2057 1 2082 4
2008 3 2033 6 2058 2 2083 5
2009 4 2034 0 2059 3 2084 0
2010 5 2035 1 2060 5 2085 1
2011 6 2036 3 2061 6 2086 2
2012 1 2037 4 2062 0 2087 3
2013 2 2038 5 2063 1 2088 5
2014 3 2039 6 2064 3 2089 6
2015 4 2040 1 2065 4 2090 0
2016 6 2041 2 2066 5 2091 1
2017 0 2042 3 2067 6 2092 3
2018 1 2043 4 2068 1 2093 4
2019 2 2044 6 2069 2 2094 5
2020 4 2045 0 2070 3 2095 6
2021 5 2046 1 2071 4 2096 1
2022 6 2047 2 2072 6 2097 2
2023 0 2048 4 2073 0 2098 3
2024 2 2049 5 2074 1 2099 4

Эту таблицу не обязательно запоминать. Код года для XXI века (2000 – 2099 гг.) можно вычислить следующим образом:

  1. представить год в виде выражения: 2000 + X, где X – число из двух последних цифр года;
  2. разделить X на 4 и отбросить остаток;
  3. добавить X к результату пункта 2;
  4. если результат пункта 3 больше шести, то вычесть из него наибольшее кратное семи (но не превосходящее результат пункта 3) число.

Например, для 2029 года: 1) 2029 = 2000 + 29; 2) 29 / 4 = 7(остаток отброшен); 3) 7 + 29 = 36; 4) 36 - 35(7x5) = 1

порядковый день в месяце = 5;

код месяца = 5;

код года: 1) 2018 = 2000 + 18; 2) 18 / 4 = 4(остаток отброшен); 3) 4 + 18 = 22; 4) 22 - 21(7x3) = 1

(порядковый день в месяце + код месяца + код года) = 5 + 5 + 1 = 11

Так как полученная сумма превышает 6, то сокращаем её до числа, не превышающего 6, путём вычитания соответствующего кратного семи числа: 11 - 7(7x1) = 4

Ответ: четверг (код дня недели = 4)

порядковый день в месяце = 26;

код месяца = 2;

код года: 1) 2039 = 2000 + 39; 2) 39 / 4 = 9(остаток отброшен); 3) 9 + 39 = 48; 4) 48 - 42(7x6) = 6

(порядковый день в месяце + код месяца + код года) = 26 + 2 + 6 = 34

Так как полученная сумма превышает 6, то сокращаем её до числа, не превышающего 6, путём вычитания соответствующего кратного семи числа: 34 - 28(7x4) = 6

Ответ: суббота (код дня недели = 6)

Для определения дня недели по датам XX века необходимо сместить код годов XXI века вперёд на 1 день.

порядковый день в месяце = 12;

код месяца = 1;

код года: 1) 1953 = 1900 + 53; 2) 53 / 4 = 13(остаток отброшен); 3) 13 + 53 = 66; 4) 66 - 63(7x9) = 3

Так как мы имеем дело с датой XX века, то прибавляем к коду года единицу: 3 + 1 = 4

(порядковый день в месяце + код месяца + код года) = 12 + 1 + 4 = 17

Так как полученная сумма превышает 6, то сокращаем её до числа, не превышающего 6, путём вычитания соответствующего кратного семи числа: 17 - 14(7x2) = 3

Ответ: среда (код дня недели = 3)

* В обычном (не високосном году) 365 дней (52 полных недели + 1 день). Поэтому в такой год, относительно предыдущего, день недели смещается на 1 день вперёд.

В високосном году 366 дней (52 полных недели + 2 дня). Поэтому в такой год, относительно предыдущего, день недели смещается на 2 дня вперёд. Если быть точнее, то дополнительное смещение (за счет того, что год – високосный) происходит после окончания февраля месяца. Поэтому для января и февраля високосного года (когда смещение ещё не произошло) код месяца уменьшен на единицу по сравнению с январём и февралём обычного (не високосного) года.

Одно из самых простых и действенных упражнений для тренировки памяти в любом возрасте – это устный счет. Можно придумать много различных вариантов тренировки устного счета, но здесь очень важным моментом выступает интерес к данным упражнениям и результату вычислений.

Предлагаем для тренировки упражнение по вычислению дня недели по конкретной дате.

С одной стороны, это может пригодиться в конкретной ситуации, чтобы быстро определить в какой день недели родились Вы или Ваши знакомые, или в какой день недели был Ваш предыдущий День рождения или будет следующий День рождения. А может и немного удивить вашего собеседника, сообщив ему, что он родился в какой-то конкретный день недели.

С другой стороны, это не простое упражнение только на сложение или вычитание. Здесь нужно будет в уме, и делить, и складывать, и подставлять определенные числа вместо значений месяца. Переходим к алгоритму такого вычисления.

ВЫЧИСЛЕНИЕ ДНЯ НЕДЕЛИ ПО ДАТЕ

Рассмотрим сначала четыре основных параметра для расчетов.

Возьмем дату — 20.11.1957 года

Годовой индекс рассчитывается таким образом, что две последние цифры года делятся на 12. Например, из года 1957 берется число 57. Это число де­лится на 12, получается 4 и 9 в остатке.

Остаток делится на 4. В нашем при­мере получается остаток 9, который при делении на 4 дает 2 и 1 в остатке, однако здесь остаток не учитывается.

Три полученных числа складываются. Итак, 4 плюс 9 плюс 2, получится 15.

Каждому месяцу присваивается свой индекс, который просто нужно запомнить.

Месяц | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |

———————————————————————————-

Индекс | 6 | 2 | 2 | 5 | 0 | 3 | 5 | 1 | 4 | 6 | 2 | 4 |

Для годов, начинающихся с «одна тысяча девятьсот…» прибавляется + 1

Для годов, начинающихся с «две тысячи…» ничего не прибавляется

Еще есть дополнительное правило для високосных годов, которые можно уз­нать по тому, что две последние цифры года без остатка делятся на 4.

Если исход­ная дата относится к январю или февралю високосного года, тогда из итогового числа необходимо отнять – 1

Рассмотрим несколько конкретных примеров.

1. Вычислим день недели для даты 20.11.1957 года

Сложим все индексы:

Индекс года — 15 (4+9+2)

Индекс месяца – 2

Просто дата – 20

Индекс века — 1

Итак, 15 плюс 2 плюс 20 плюс 1, получится 38.

Результат делится на 7, в нашем случае 38 делить на 7 равно 5 и 3 в ос­татке.

Неделя начинается с понедельника, это число 1, а число 3 соответствует среде.

Итого: 20.11.1957 года – это среда.

2. Вычислим день недели для даты 10.02.1928 года

Сложим все индексы:

Индекс года – 7 (2+4+1)

Индекс месяца – 2

Просто дата – 10

Индекс високосного года – (-1)

Индекс века — 1

Итак, 7 плюс 2 плюс 10 плюс 1 минус 1, получится 19.

Неделя начинается с понедельника, это число 1, а число 5 соответствует пятнице.

Итого: 10.02.1928 года – это пятница.

3. Вычислим день недели для даты 15.06.2012 года

Сложим все индексы:

Индекс года — 1

Индекс месяца – 3

Просто дата – 15

Индекс века — 0

Итак, 15 плюс 3 плюс 1, получится 19.

Результат делится на 7, в нашем случае 19 делить на 7 равно 2 и 5 в ос­татке.

Доброго времени суток друзья!

Эту статью я посвятил теме, как определить в Excel день недели по дате. Очень часто с этим вопросом сталкиваются по заработной плате и специалисты отдела кадров, хотя и решений вопросов, когда надо знать припадает ли данное число на рабочий день недели или нет, достаточно много. К этим задачам можно отнести расчёт больничного листа, определения праздничных дней, определения отпускных дней, да и, впрочем, еще много задач где нужно определить в Excel день недели по дате.

Определить день неделиможно несколькими способами и в этой статье мы рассмотрим 3 варианта:

С помощью пользовательского формата

Очень простой способ определить день недели по дате, делается это следующим образом:

  • выделяете , в которых хотите внести изменения в отображении даты;
  • вызываете контекстное меню правой кнопкой мыши и выбираете пункт «Формат ячеек» ;
  • в появившемся окне выбираете вкладку «Число» , в разделе «Числовые форматы» вам нужно выбрать пункт «(все форматы)» и в поле тип внести нужный вам формат даты.

Сами форматы данных можно разделить на 2 типа: полный и сокращенный .

  • Полный формат обозначаеться полным названием дня недели или месяца (к примеру, среда, четверг, и т.д.), полный формат указывается «ДДДД» — для дней недели, «ММММ» — для месяцев.
  • Сокращенный формат отображается только двумя буквами (к примеру, Ср, Чт, Пт, и т.д.) и для этого указывается формат «ДДД» — для дней недели, «МММ» — для месяцев.

С помощью функции ТЕКСТ

В этом случае мы будем использовать встроенную , для того чтобы определить в Excel день недели по дате. Эта функция предназначена, чтобы форматировать число в ячейке и преобразовать его в текст.
Используя эту функцию, вы первым значением указываете источник данных, а потом указываете формат преобразования данных. Формат вы указываете сокращенный или полный , как я описал выше в первом пункте.

Орфография формулы выглядит так:

=ТЕКСТ (А1;«дддд») , формула возвращает текстовое значение дня недели.

С помощью функции ДЕНЬНЕД

Третий вариант узнать день недели по дате, это с помощью функции ДЕНЬНЕД, которая относится к группе «Дата и время» , там вы ее и найдете. Эта функция возвращает число от 1 до 7, что соответствуют дню недели.
Формула выглядит так:

=ДЕНЬНЕД(А1;2) , где:

  • «А1 » – это адрес ячейки где дата в числовом формате,
  • «2 » – это число которое определяет тип возвращаемого значения (существует 3 типа: 1 или отсутствует – возвращает число от 1 (воскресенье) до 7 (суббота), 2 – от 1 (понедельник) до 7 (воскресенье) и 3 – от 0 (понедельник) до 6 (воскресенье), нам привычней всего 2 тип).

Думаю вам станет интересной статья « » в ней вы найдете полезные советы и примеры при работе с датами.

А на этом у меня всё! Я очень надеюсь, что что тема как определить в Excel день недели по дате, была раскрыта и стала вам полезной. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями прочитанным и ставьте лайк!