Разное

Высчитать день родов: Рассчитать дату родов | HiPP Organic

Как рассчитать день моего рождения

••• Kwangmoozaa/iStock/GettyImages

Обновлено 13 марта 2018 г. Вы родились. Однако вы можете использовать простые математические алгоритмы, чтобы использовать календарные константы, такие как 7-дневная неделя и 12-месячный год, для расчета дня вашего рождения.

    Запишите дату своего рождения. Для этого примера возьмем дату 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 года.

    • Журнал Plus: В какой день недели вы родились?
    • Математика — это весело: високосные годы

    Об авторе

    Сэмюэл Маркингс пишет для научных публикаций более 10 лет и публиковал статьи в таких журналах, как «Nature». Он эксперт в области физики твердого тела, а днем ​​работает исследователем в британском университете Russell Group.

    Программа Python для расчета возраста в году

  1. Читать
  2. Обсудить
  3. Улучшить статью

    Сохранить статью

    Нравится Статья

    Учитывая дату рождения в формате г/м/д, напишите программу на Python, чтобы найти текущий возраст в годах.

    Примеры:  

      Ввод:  1997/2/3
      Выход:  21 год (для текущего года, т. е. 2018)
      Ввод :  25.12.2010
      Вывод:  8 лет (для текущего года, т.е. 2018) 

    Подход № 1:  
    Наивный подход к нахождению текущего возраста в годах состоит в том, чтобы найти разницу между текущим годом и годом рождения. Обратитесь к наивному подходу отсюда.

    Подход № 2: Использование модуля даты и времени
    Python предоставляет модуль даты и времени для решения всех проблем, связанных с датой и временем в Python. Используя дату и время, мы можем найти возраст, вычитая год рождения из текущего года. Наряду с этим, нам нужно ориентироваться на месяц рождения и день рождения. Для этого мы проверяем, меньше ли текущий месяц и число, чем месяц и число рождения. Если да, вычтите из возраста 1, иначе 0. 

    Python3

     

    from datetime import date

     

    def calculateAge(birthDate):

    9012 4      сегодня = date. today()

         возраст = сегодня.год - Дата рождения.год -

              ((сегодня.месяц, сегодня.день) <

              (дата рождения.месяц, дата рождения.день))

     

         возврат возраст

          

    печать (рассчитатьВозраст(дата( 1997 , 2 , 3 )), "лет" )

    Выход: 9009 4  

     21 год 

     

    Временная сложность предоставленного кода равна O(1), поскольку он включает в себя основные арифметические операции и сравнения дат.

    Сложность вспомогательного пространства кода составляет O(1), поскольку он использует постоянный объем дополнительного пространства только для хранения объекта «сегодня», переменной возраста и логического результата сравнения дат. Подход #3 Этот случай следует рассматривать как исключение, поскольку расчет даты рождения может быть неточным. Этот метод включает попытку и отлов для этого исключения.

    Python3

    из datetime импорт дата

     

    def calculateAge(born):

         сегодня = date.today( )

         попробовать :

             день рождения = 9012 6 рожден.заменить(год = сегодня.год)

     

        

        

         кроме 90 125 ValueError:

             день рождения = рожден. 03                   месяц = месяц рождения + 1 , день = 1 )

     

         if день рождения > сегодня:

             возврат 9012 6 сегодня. год - год рождения - 1

         еще :

             возврат сегодня.год - год рождения

              

    печать (рассчитать возраст(дата( 1997 , 2 , 3 )), "год s" )

    Выход:  

     21 год 

     

    Подход № 4: с использованием деления
    В этом подходе мы вычисляем число дат от даты рождения до текущей даты. Разделите число даты на количество дней в году, то есть 365,2425.

    Python3

    из дата-время импорт дата

     

    по умолчанию calculateAge(birthDate):

         days_in_year = 365,2425    

    9 0125      возраст = int ((дата. сегодня() - Дата рождения).дней / дней_в_году)

         возврат возраст

              

    печать (кал. culateAge(date( 1997 , 2 , 3 )), "лет" )

    Выход:  

     21 год 

     

    Время сложности : O(1)
    Вспомогательное пространство : O(1)

    Подход № 5: Используйте модуль dateutil

    Чтобы установить dateutil, вы можете использовать следующую команду pip:

     pip install python-dateutil 

    Это установит библиотеку dateutil, которая предоставляет мощный набор инструментов для управления датами. и время в Python. Затем вы можете использовать библиотеку в своем коде Python, импортировав ее.

    Один из подходов заключается в использовании функции relativedelta из модуля dateutil. Эта функция позволяет вам рассчитать разницу между двумя датами в годах, месяцах, днях и т. д. Вот пример того, как вы можете использовать ее для расчета возраста в годах:

    Python3

    из dateutil.relativedelta импорт relativedelta

    from datetime import date

     

    def calculate_age(birth_date):

         сегодня = date.today()

         возраст 9 0125 = относительная дельта(сегодня, дата_рождения)

         возврат возраст.лет

     

    дата_рождения = дата( 1997 , 2 , 3 )

    age = calculate_age(birth_date)

    print (f "Возраст в годах: {возраст}" )

     

      Выход: 
    Возраст в годах: 25 

    Временная сложность: Временная сложность этой программы равна O(1), поскольку время выполнения этой программы не зависит от размера входных данных.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *