Алгоритм расчета возраста

botir

Help:
Задача: рассчитать возраст человека с точностью до дня. Есть две даты: дата рождения человека и дата, на которую рассчитываем возраст. Даты задаются в обычном формате, например 13.10.1982 (10-месяц)-дата рождения и 15.11.2006 - дата расчета. Необходимо рассчитать возраст человека в формате: X=сколько полных лет прожил человек; Y=сколько полных месяцев прожил человек, Z=сколько полных дней прожил человек.
Интересует сам алгоритм, чтобы его можно было запрограммировать!
Алгоритм для определения точного числа прожитых лет и месяцев уже есть!
Может кто-то уже решал такую задачу?
Можно и код данного алгоритма, если у кого есть!
Огромное спасибо.

svetik5623190

считайте, что в году не 365, а 365.25 дней. Тогда не будет проблем с високосными годами. Выводить же "четверьцелые" дни в ответ или делать округление - решать Вам.

iri3955

Вообще, период составляет 400 лет. Из них 97 високосные...

seregaohota

Да нет тут никаких мудрёностей. Наверное имеется в виду, что если как в твоём примере Y1>Y0, M1>M0, D1>D0 (ну или равно то ответ просто
Y = Y1-Y0 = 2006-1982
М = M1-M0 = 11-10
D = D1-D0 = 15-13
Если D1<D0 то M1=M1-1 (если M1=1, то M1=12, Y1=Y1-1 D1=D1+(сколько дней было в предыдущем месяце даты окончания, т.к. M1 и Y1 уже изменились на предыдущий месяц - просто смотришь тупо сколько дней в M1.Y1, учитывая високосность года)
Если теперь M1<M0, то полагаешь M1=M1+12, Y=Y-1.
Далее, обеспечив теперь Y1>Y0, M1>M0, D1>D0 (ну или равно)
Y = Y1-Y0
М = M1-M0
D = D1-D0
Дело в шляпе. Вряд ли тут интересовало количество секунд между двумя датами как в астрономии. Если это надо, то алгоритмов в инете дофига даже онлайн посчитают в джаве прямо в браузере тебе, да ещё и даты переведут на календарь Майя или еврейский, тогда копай в интернете юлианские дни. Julian Day если не ошибаюсь. И это не то же, что Юлианский или Григорианский календарь, это другое.

Lenn

я конечно не специалист в программировании..но вроде подобная задачка была в сборнике для поступающих в СУНЦ для девятых (?) классов...или что то типа...точно не помню.

sergeychik_a

ну тогда считать, что в году 365 и 97/400х дня. Мир Вам!

sergeychik_a

хы, я там такую в 11м решал. Мир Вам!
Оставить комментарий
Имя или ник:
Комментарий: