Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Сент. 2011
Помог: 0 раз(а)
|
Champion пишет:(int) ((time() - mktime(0,0,0, $m, $d, $y)) / (60 * 60 * 24 * 365.25) думаешь сильно хуже?
Сорри, что поднимаю тему, но у меня встала та же проблема, что и у автора данной темы, а точнее - проблема при подсчёте возраста по дате рождения с учётом високосного года.
Идея про 365.25 дней в году очень понравилась. Но тут есть проблема, что при некоторых обстоятельствах (не могу их сформулировать, но сам факт того, что делим мы на 365.25 не зная, действительно ли 4 год с даты рождения был високосным, даёт сомнение в отсутствии погрешностей) данное решение может допускать погрешность в 1 сутки. Погрешность, конечно, мелочная, но привычка добиваться идеально правильного решения не даёт мне плюнуть на данную проблему.
Решение 1.
(придумал в тот момент, как только начала заниматься php, поэтому он самый простой)
Данное решение неприхотливо ни к чему. Основывается на логике обычного среднестатистического человека при подсчёте возраста, и именно поэтому не является приоритетным (хочется же показать, что php-программеры - это не "обычные среднестатистические", а мегакреативные).
Решение 2.
Я его даже реализовывать не буду, потому что оно основано на цикле, перебирающем года, прошедшие с момента рождения, и плюсующие количество дней основываясь на данных, полученных в date("L") для каждого отдельного года (определения, високосный ли год сейчас в цикле).
Решение 3.
А это решение я не могу привести не из лени, а из-за того, что мозг отключается после более суток беспрерывного кодинга (и данное обстоятельство крайне печально).
Основывается это решение на функции date("w") (определение дня недели) и вышеприведённом решении от Champion. Если быть точнее, то речь идёт об устранении это мелкой, с точки зрения восприятия, возможной погрешности в 1 день путём сравнения date("w") и date("w",$timestamp_rojdeniya). Мысль в голове ещё не до конца сформировалась, поэтому продолжить её пока не могу. Завтра утром, наверное, мозг включится, и данное сообщение докомплектую доп.информацией и исправлю все допущенные выше ошибки, которых, думаю, измученный мозг допустил много.
--
С уважением, ...(Отредактировано автором: 06 Сентября, 2011 - 22:29:43)
|