Высчитать день родов: Рассчитать дату родов | HiPP Organic
Как рассчитать день моего рождения
••• Kwangmoozaa/iStock/GettyImages
Обновлено 13 марта 2018 г. Вы родились. Однако вы можете использовать простые математические алгоритмы, чтобы использовать календарные константы, такие как 7-дневная неделя и 12-месячный год, для расчета дня вашего рождения.
- Журнал Plus: В какой день недели вы родились?
- Математика — это весело: високосные годы
- Читать
- Обсудить
Запишите дату своего рождения. Для этого примера возьмем дату 10 марта 19 года.66.
По словам математиков Беркарда Полстера и Марти Росс в статье журнала Plus Magazine «В какой день недели вы родились?» приведенную ниже таблицу следует использовать для добавления соответствующей записи таблицы к дню месяца рождения:
Январь: 6 Февраль: 2 Март: 2 Апр: 5 Май: 0 Июнь: 3 Июль: 5 Авг: 1 Сен: 4 Октябрь: 6 Ноябрь: 2 Декабрь: 4
Следуя примеру, день месяца 10, а месяц март, поэтому:
10 + 2 = 12
Используйте следующую таблицу, чтобы найти число, которое нужно добавить к результату раздела 2:
1900: 1 1910: 6 1920: 5 1930: 3 1940: 2 1950: 0 1960: 6 1970: 4 1980: 3 1990: 1 2000: 0 2010: 5
Следующий пример , начиная с даты, которую мы используем находится в 1960-х годах, мы используем число, связанное с этим в таблице выше:
12 + 6 = 18
Добавьте окончательное число года к полученному результату. Например, год был 1966, поэтому окончательное число года равно 6:
18 + 6 = 24
Далее нам нужно учесть количество високосных лет. Для этого шага потребуются следующие таблицы:
Четные числа:
0:0 1:0 2:0 3:0 4:1 5:1 6:1* 7:1 8:2 9:2
Нечетные числа
0:0 1:0 2:1 3:1 4:1 5:1 6:2 7:2 8:2 9:2
Запишите номер декады даты. Если номер десятилетия четный, используйте таблицу для четных чисел и найдите запись в таблице, соответствующую последнему числу в течение года. Если десятилетие нечетное, таблица для нечетных чисел и найти запись таблицы, которая соответствует последнему числу в течение года.
Следуя примеру, десятилетие — это 60-е годы, поэтому 6 — это число десятилетия, которое является четным. Поэтому мы будем использовать приведенную выше четную таблицу. Последний год 1966 — 6; поэтому мы будем использовать число, соответствующее 6. Запись отмечена звездочкой. Прибавьте число, найденное в таблице, к результату раздела 3:
24 + 1 = 25
Наконец, разделите ответ, полученный на шаге 4, на 7 и запишите остаток. Следуя примеру:
25 / 7 = 3 остатка 4
Если записанная дата была январь или февраль високосного года (это годы в четных декадах, оканчивающиеся на 0, 4 или 8), то из ответа вычтите 1. Значение конечного остатка соответствует дню недели. День 4 — четверг, и, следовательно, это день, который соответствует 10 марта 1966 года.
Об авторе
Сэмюэл Маркингс пишет для научных публикаций более 10 лет и публиковал статьи в таких журналах, как «Nature». Он эксперт в области физики твердого тела, а днем работает исследователем в британском университете Russell Group.
Программа Python для расчета возраста в году
Улучшить статью
Сохранить статью
Нравится Статья
Учитывая дату рождения в формате г/м/д, напишите программу на Python, чтобы найти текущий возраст в годах.
Примеры:
Ввод: 1997/2/3 Выход: 21 год (для текущего года, т. е. 2018) Ввод : 25.12.2010 Вывод: 8 лет (для текущего года, т.е. 2018)
Подход № 1:
Наивный подход к нахождению текущего возраста в годах состоит в том, чтобы найти разницу между текущим годом и годом рождения. Обратитесь к наивному подходу отсюда.
Подход № 2: Использование модуля даты и времени
Python предоставляет модуль даты и времени для решения всех проблем, связанных с датой и временем в Python. Используя дату и время, мы можем найти возраст, вычитая год рождения из текущего года. Наряду с этим, нам нужно ориентироваться на месяц рождения и день рождения. Для этого мы проверяем, меньше ли текущий месяц и число, чем месяц и число рождения. Если да, вычтите из возраста 1, иначе 0.
Python3
9012 4
|
Выход: 9009 4
21 год
Временная сложность предоставленного кода равна O(1), поскольку он включает в себя основные арифметические операции и сравнения дат.
Сложность вспомогательного пространства кода составляет O(1), поскольку он использует постоянный объем дополнительного пространства только для хранения объекта «сегодня», переменной возраста и логического результата сравнения дат. Подход #3 Этот случай следует рассматривать как исключение, поскольку расчет даты рождения может быть неточным. Этот метод включает попытку и отлов для этого исключения.
Python3
из datetime импорт дата
|
Выход:
21 год
Подход № 4: с использованием деления
В этом подходе мы вычисляем число дат от даты рождения до текущей даты. Разделите число даты на количество дней в году, то есть 365,2425.
Python3
из дата-время импорт дата
9 0125 |
Выход:
21 год
Время сложности : O(1)
Вспомогательное пространство : O(1)
Подход № 5: Используйте модуль dateutil
Чтобы установить dateutil, вы можете использовать следующую команду pip:
pip install python-dateutil
Это установит библиотеку dateutil, которая предоставляет мощный набор инструментов для управления датами. и время в Python. Затем вы можете использовать библиотеку в своем коде Python, импортировав ее.
Один из подходов заключается в использовании функции relativedelta из модуля dateutil. Эта функция позволяет вам рассчитать разницу между двумя датами в годах, месяцах, днях и т. д. Вот пример того, как вы можете использовать ее для расчета возраста в годах:
Python3
из dateutil.relativedelta импорт relativedelta
|
Выход: Возраст в годах: 25
Временная сложность: Временная сложность этой программы равна O(1), поскольку время выполнения этой программы не зависит от размера входных данных.