Меню

Таблица с днями недели и числами

Таблица с днями недели и числами

Эта статья получилась из вопроса, который я сам себе задал вчера.

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

Так я подумал в первую минуту после того, как задался вопросом. Это следовало бы доказать. Перебрать все года, например. Простой и быстрый способ, но не интересный. Доказать математически было намного более заманчивой идеей, но как к этому подступиться я совершенно не понимал. Поэтому просто начал выписывать продолжительность каждого месяца на бумагу.

Тут стоит оговорить, что речь дальше пойдёт про григорианский календарь, по которому мы живём с 1918 года. Однако часть рассуждений будет верна и для юлианского.

На самом деле такого года не существует. Давайте разбираться почему.

Часть 1. Месяцы

Янв Фев Март Апр Май Июнь Июль Авг Сен Окт Нояб Дек
31 28 / 29 31 30 31 30 31 31 30 31 30 31
Янв Фев Март Апр Май Июнь Июль Авг Сен Окт Нояб Дек
3 0 / 1 3 2 3 2 3 3 2 3 2 3

Например, в этом году январь начался во вторник, поэтому февраль начался в пятницу. Вт + 3 = Пт.

Насколько же сдвинут день недели первого числа некоторого месяца? Чтобы найти это, надо просуммировать «излишки» дней над четырьмя неделями во всех предыдущих месяцах. В таблице представлены сдвиги относительно дня недели на первое января. Первая строка для невисокосного года, вторая для високосного.

Янв Фев Март Апр Май Июнь Июль Авг Сен Окт Нояб Дек
3 3 6 8 11 13 16 19 21 24 26
3 4 7 9 12 14 17 20 22 25 27
Янв Фев Март Апр Май Июнь Июль Авг Сен Окт Нояб Дек
3 3 6 1 4 6 2 5 3 5
3 4 2 5 3 6 1 4 6

Вот теперь другое дело! Ясно видно, как определить день недели на первое число любого месяца, если известен день недели на первое января. Надо просто прибавить сдвиг для интересующего месяца. Закономерность февраль-март-ноябрь я знаю ещё со школы, а другие не замечал.

Мы получили ответ на вопрос в начале статьи.

Но теперь можно задавать другие вопросы. Например, «в каких годах такой месяц только один?» или «в какие года таких месяцев максимально много?». Для этого надо уметь определять день недели на первое января любого года.

Часть 2. Годы

Когда я учился программировать, а это было в 10 классе школы на PascalABC, одним из первых серьёзных заданий было реализовать процедуру, распечатывающую календарь на год, который передавался как аргумент. У нас были подсказки, какие функции для этого надо реализовать. В целом всё сводилось к подсчёту дней между двумя датами: эталонной и текущей, чтобы определить день недели на первое января нужного года.

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

Високосные года в григорианском календаре назначаются следующим образом:

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

Заметим, что первое января от года к году смещается на один или два дня недели, и напишем

Выводятся дни недели на первое января каждого года, с 1801 до 3000. Понедельник обозначается как «0», вторник как «1», и т. д. Представим всё в виде таблицы из двух полных четырёхсотлетних циклов и двух половинок. По горизонтали идут столетия, по вертикали года в этих столетиях. В ячейки на пересечении столетия и года написан день недели, в который этот год начался. Например, день недели, в который начался 1997 год, стоит на пересечении столбца «1900» и строки «97». Это среда. Полная версия таблицы: часть 1, часть 2.


В таблице сразу можно заметить две вещи: четырёхсотлетние циклы действительно начинаются в один день недели (2001, 2401 и 2801 года; понедельник), а вместо 2000 года есть «тысяча девятьсот сотый». Последнее сделано нарочно, для дальнейшего удобства. Первый же факт позволяет нам без препятствий двигаться дальше.

1 2 3 5 6 1 3 4 5 6 1 2 3 4 6 1 2 4 5 6 2 3 4 5

Первое столетие начинается со смещением по циклу, равным 0, второе со смещением 4, третье со смещением 8 и четвёртое со смещением 12. Именно для этого таблица представлена в виде, где в столетии есть «сотые» года и нет нулевых. Стоит сказать, что всего существует 14 различных вариантов года. В двадцативосьмилетнем цикле по одному разу на каждый день недели приходится начало високосного года и по три раза начало не високосного.

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

Часть 3. Итоги

1 2 3 5 6 1 3 4 5 6 1 2 3 4 6 1 2 4 5 6 2 3 4 5

Во время написания статьи, я нашёл на Хабре две схожие по тематике: раз и два. Автор первой с помощью специальной таблицы показывает, как найти в уме день недели для дат в XX и XXI веках. Представленная им таблица содержит 56 чисел. Предложенный в статье алгоритм использует таблицу дней недели и две таблицы смещений, содержащие (28 + 2*12) = 52 числа, которые необходимо запомнить. Весь исходный код лежит на GitHub’е.

Интересный факт: с 1 по 13 февраля 1918 года в Советской России не родился ни один человек.

Задавайте себе вопросы с утра по воскресеньям =)

Обновление от 03.07.2019 (среда)

Если представить двадцативосьмилетний цикл в виде таблицы,

то становится понятно, как можно вычислить смещение дня недели на первое января:

С учётом этого, а также того, что смещения для месяцев в високосном году можно вычислить через смещения в невисокосном, напишем

Источник



Установка дня недели по дате в Microsoft Excel

День недели в Microsoft Excel

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

Отображение дня недели в Экселе

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

Способ 1: применение форматирования

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

  1. Вводим любую дату, содержащую данные о числе, месяце и годе, в ячейку на листе.

Дата в Microsoft Excel

Кликаем по ячейке правой кнопкой мыши. Запускается контекстное меню. Выбираем в нем позицию «Формат ячеек…».

Переход в окно форматирования в Microsoft Excel

Запускается окно форматирования. Перемещаемся во вкладку «Число», если оно было открыто в какой-нибудь другой вкладке. Далее в блоке параметров «Числовые форматы» устанавливаем переключатель в позицию «Все форматы». В поле «Тип» вручную вводим следующее значение:

После этого щелкаем по кнопке «OK» внизу окна.

Окно форматирования в Microsoft Excel

  • Как видим, в ячейке вместо даты отобразилось полное наименование дня недели ей соответствующего. При этом, выделив данную ячейку, в строке формул вы все равно увидите отображение даты.
  • День недели отобразился в ячейке в Microsoft Excel

    В поле «Тип» окна форматирования вместо значения «ДДДД» можно также ввести выражение:

    Окно формат ячеек в Microsoft Excel

    В этом случае на листе будет отображено сокращенное наименование дня недели.

    Краткое отображение дня недели в Microsoft Excel

    Способ 2: использование функции ТЕКСТ

    Но способ, который был представлен выше, предусматривает преобразование даты в день недели. Существует ли вариант, чтобы оба эти значения выводились на листе? То есть, если в одной ячейке мы вводим дату, то в другой должен выводиться день недели. Да, такой вариант существует. Его можно осуществить при помощи формулы ТЕКСТ. В этом случае нужное нам значение будет выводиться в указанную ячейку в текстовом формате.

      Записываем дату на любом элементе листа. Затем выделяем любую пустую ячейку. Щелкаем по пиктограмме «Вставить функцию», которая расположена возле строки формул.

    Переход в Мастер функций в Microsoft Excel

    Происходит запуск окошка Мастера функций. Переходим в категорию «Текстовые» и из списка операторов выбираем наименование «ТЕКСТ».

    Переход в окно аргументов функции ТЕКСТ в Microsoft Excel

    Открывается окно аргументов функции ТЕКСТ. Данный оператор призван выводить указанное число в выбранном варианте текстового формата. Он имеет следующий синтаксис:

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

    В поле «Формат» в зависимости от того, какое мы хотим иметь представление дня недели полное или сокращенное, вводим выражение «дддд» или «ддд» без кавычек.

    После ввода этих данных жмем на кнопку «OK».

    Окно аргументов функции ТЕКСТ в Microsoft Excel

  • Как видим в ячейке, которую мы выбрали в самом начале, отобразилось обозначение дня недели в выбранном текстовом формате. Теперь у нас на листе отображается и дата, и день недели одновременно.
  • Результат обработки данных функцией ТЕКСТ в Microsoft Excel

    Более того, если в ячейке изменить значение даты, то соответственно автоматически изменится и день недели. Таким образом, меняя дату можно узнавать на какой день недели она будет приходиться.

    Данные изменены в Microsoft Excel

    Способ 3: применение функции ДЕНЬНЕД

    Имеется ещё один оператор, который может выводить день недели по заданной дате. Это функция ДЕНЬНЕД. Правда, она выводит не название дня недели, а его номер. При этом пользователь может устанавливать с какого дня (с воскресенья или с понедельника) нумерация будет отсчитываться.

      Выделяем ячейку для вывода номера дня недели. Щелкаем по значку «Вставить функцию».

    Вставить функцию в Microsoft Excel

    Снова открывается окошко Мастера функций. На этот раз переходим в категорию «Дата и время». Выбираем наименование «ДЕНЬНЕД» и жмем на кнопку «OK».

    Переход в окно аргументов функции ДЕНЬНЕД в Microsoft Excel

    Производится переход в окно аргументов оператора ДЕНЬНЕД. Он имеет следующий синтаксис:

    В поле «Дата в числовом формате» вводим конкретную дату или адрес ячейки на листе, в которой она содержится.

    Читайте также:  Таблица температуры плавления масел

    В поле «Тип» задается число от 1 до 3, которое определяет, как именно будут нумероваться дни недели. При установке числа «1» нумерация будет происходить, начиная с воскресенья, причем этому дню недели будет присвоен порядковый номер «1». При установке значения «2» нумерация будет выполняться, начиная с понедельника. Этому дню недели будет дан порядковый номер «1». При установке значения «3» нумерация так же будет происходить с понедельника, но в этом случае понедельнику будет присвоен порядковый номер «0».

    Аргумент «Тип» не является обязательным. Но, если его опустить, то считается, что значение аргумента равно «1», то есть, неделя начинается с воскресенья. Так принято в англоязычных странах, но нам данный вариант не подходит. Поэтому в поле «Тип» ставим значение «2».

    После выполнения указанных действий щелкаем по кнопке «OK».

    Окно аргументов функции ДЕНЬНЕД в Microsoft Excel

  • Как видим, в указанную ячейку выводится порядковый номер дня недели, который соответствует введенной дате. В нашем случае это число «3», которое обозначает среду.
  • Результат обработки данных функцией ДЕНЬНЕД в Microsoft Excel

    Как и с предыдущей функцией, при изменении даты автоматически изменяется номер дня недели в ячейке, в которой установлен оператор.

    Изменение даты в Microsoft Excel

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

    ЗакрытьМы рады, что смогли помочь Вам в решении проблемы.

    Помимо этой статьи, на сайте еще 12001 инструкций.
    Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    ЗакрытьОпишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

    Источник

    Как сделать календарь в Word как профи, за 1 минуту

    13.01.2021 | Александр Шихов | Комментарии

    Иногда бывает нужно сделать календарь на месяц в Word. Например, для отметки рабочих смен, расписания занятий и прочих задач. Расскажу наиболее простой способ как это сделать в виде пошаговой инструкции. Тем, кто уже владеет Word хорошо, понравится предложенный нами способ нумерации дней. Уверен, не все знали, что так было можно.

    Создаем таблицу

    В новом документе создаем таблицу 7×7 ячеек. Для этого выберите пункту Вставка, Таблица.

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

    Делаем название месяца

    Ячейки в верхней строке выделяем мышью и объединяем в единую ячейку с помощью меню, вызываемого по правой кнопке мыши.

    Название вводим в ячейку и центруем текст по ширине.

    Выравниваем высоту ячеек

    Экспериментально установлено, что для печати календаря в портретной ориентации наиболее удобная высота ячейки — 1,5 см. Выделяем ячейки в пяти последних строках мышью, в контекстном меню выбираем Свойства таблицы.

    Переходим на вкладку Строка, ставим 1,5 см, Точно.

    Вводим названия дней недели

    Тут без хитростей. Просто набираем на клавиатуре названия дней недели.

    Вводим числа в календарь Word

    Тут мы сэкономим время с помощью Экспресс-блоков. Встаем в первую ячейку и через меню Вставка вставляем в нее автополе Seq.

    После фразы Seq в формуле дописываем идентификатор. Например, DAY. Подойдет любой, важно, чтобы не совпадал со стандартными нумерациями Word.

    Должно получиться вот так.

    А теперь выделяем единичку. Копируем ее через правую клавишу мыши или по Ctrl-С.

    Теперь выделяем все ячейки с днями и вставляем скопированный фрагмент.

    Первое число приходится на пятницу. Поэтому первые 4 ячейки выделяем и нажимаем Del.

    Теперь выделяем всю таблицу и нажимаем F9 — обновление полей.

    Удалите лишние дни в нижней строке (при необходимости).

    Календарь готов! Дальнейшее украшение — по вашему вкусу.

    А можно сделать проще?

    Если вы хотите нарисовать красивый календарь в Ворд, то помогут тысячи шаблонов готовых макетов. Просто наберите в строке поиска «календарь при создании нового документа».

    Источник

    Изучаем календарь

    Эта статья получилась из вопроса, который я сам себе задал вчера.

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

    Так я подумал в первую минуту после того, как задался вопросом. Это следовало бы доказать. Перебрать все года, например. Простой и быстрый способ, но не интересный. Доказать математически было намного более заманчивой идеей, но как к этому подступиться я совершенно не понимал. Поэтому просто начал выписывать продолжительность каждого месяца на бумагу.

    Тут стоит оговорить, что речь дальше пойдёт про григорианский календарь, по которому мы живём с 1918 года. Однако часть рассуждений будет верна и для юлианского.

    На самом деле такого года не существует. Давайте разбираться почему.

    Часть 1. Месяцы

    Янв Фев Март Апр Май Июнь Июль Авг Сен Окт Нояб Дек
    3 0 / 1 3 2 3 2 3 3 2 3 2 3

    Например, в этом году январь начался во вторник, поэтому февраль начался в пятницу. Вт + 3 = Пт.

    Насколько же сдвинут день недели первого числа некоторого месяца? Чтобы найти это, надо просуммировать «излишки» дней над четырьмя неделями во всех предыдущих месяцах. В таблице представлены сдвиги относительно дня недели на первое января. Первая строка для невисокосного года, вторая для високосного.

    Янв Фев Март Апр Май Июнь Июль Авг Сен Окт Нояб Дек
    3 3 6 8 11 13 16 19 21 24 26
    3 4 7 9 12 14 17 20 22 25 27
    Янв Фев Март Апр Май Июнь Июль Авг Сен Окт Нояб Дек
    3 3 6 1 4 6 2 5 3 5
    3 4 2 5 3 6 1 4 6

    Вот теперь другое дело! Ясно видно, как определить день недели на первое число любого месяца, если известен день недели на первое января. Надо просто прибавить сдвиг для интересующего месяца. Закономерность февраль-март-ноябрь я знаю ещё со школы, а другие не замечал.

    Мы получили ответ на вопрос в начале статьи.

    Но теперь можно задавать другие вопросы. Например, «в каких годах такой месяц только один?» или «в какие года таких месяцев максимально много?». Для этого надо уметь определять день недели на первое января любого года.

    Часть 2. Годы

    Когда я учился программировать, а это было в 10 классе школы на PascalABC, одним из первых серьёзных заданий было реализовать процедуру, распечатывающую календарь на год, который передавался как аргумент. У нас были подсказки, какие функции для этого надо реализовать. В целом всё сводилось к подсчёту дней между двумя датами: эталонной и текущей, чтобы определить день недели на первое января нужного года.

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

    Високосные года в григорианском календаре назначаются следующим образом:

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

    Заметим, что первое января от года к году смещается на один или два дня недели, и напишем

    Выводятся дни недели на первое января каждого года, с 1801 до 3000. Понедельник обозначается как «0», вторник как «1», и т. д. Представим всё в виде таблицы из двух полных четырёхсотлетних циклов и двух половинок. По горизонтали идут столетия, по вертикали года в этих столетиях. В ячейки на пересечении столетия и года написан день недели, в который этот год начался. Например, день недели, в который начался 1997 год, стоит на пересечении столбца «1900» и строки «97». Это среда. Полная версия таблицы: часть 1, часть 2.


    В таблице сразу можно заметить две вещи: четырёхсотлетние циклы действительно начинаются в один день недели (2001, 2401 и 2801 года; понедельник), а вместо 2000 года есть «тысяча девятьсот сотый». Последнее сделано нарочно, для дальнейшего удобства. Первый же факт позволяет нам без препятствий двигаться дальше.

    1 2 3 5 6 1 3 4 5 6 1 2 3 4 6 1 2 4 5 6 2 3 4 5

    Первое столетие начинается со смещением по циклу, равным 0, второе со смещением 4, третье со смещением 8 и четвёртое со смещением 12. Именно для этого таблица представлена в виде, где в столетии есть «сотые» года и нет нулевых. Стоит сказать, что всего существует 14 различных вариантов года. В двадцативосьмилетнем цикле по одному разу на каждый день недели приходится начало високосного года и по три раза начало не високосного.

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

    Часть 3. Итоги

    1 2 3 5 6 1 3 4 5 6 1 2 3 4 6 1 2 4 5 6 2 3 4 5
    Янв Фев Март Апр Май Июнь Июль Авг Сен Окт Нояб Дек
    3 3 6 1 4 6 2 5 3 5
    3 4 2 5 3 6 1 4 6

    Во время написания статьи, я нашёл на Хабре две схожие по тематике: раз и два. Автор первой с помощью специальной таблицы показывает, как найти в уме день недели для дат в XX и XXI веках. Представленная им таблица содержит 56 чисел. Предложенный в статье алгоритм использует таблицу дней недели и две таблицы смещений, содержащие (28 + 2*12) = 52 числа, которые необходимо запомнить. Весь исходный код лежит на GitHub’е.

    Интересный факт: с 1 по 13 февраля 1918 года в Советской России не родился ни один человек.

    Задавайте себе вопросы с утра по воскресеньям =)

    Обновление от 03.07.2019 (среда)

    Если представить двадцативосьмилетний цикл в виде таблицы,

    то становится понятно, как можно вычислить смещение дня недели на первое января:

    С учётом этого, а также того, что смещения для месяцев в високосном году можно вычислить через смещения в невисокосном, напишем

    Источник

    Adblock
    detector