СообЧа > База Знаний > Интернет > Веб-строительство > Java-script

Вопрос

Каким образом вычислить возраст человека, зная его точный день рождения?

Ответ

<SCRIPT LANGUAGE="JavaScript">
<!today = new Date()
den_r = new Date("April 09, 1972")
msPerDay = 24 60 60 * 1000 ;
// количество миллисекунд в дне
daysLeft = (today.getTime() ? den_r.getTime()) / msPerDay;
// сколько дней прошло
daysLeft = Math.round(daysLeft);
// округление
let= Math.floor(daysLeft/365);
// сколько лет прошло mes= Math.round((daysLeft-let*365)/30);
// сколько месяцев после полного к-ва лет
document.write("Сейчас Пете Пупкину " + let+" лет
и "+mes+" месяца(ев)");
// вывод результата
// -->
</SCRIPT>


Сергей Паюк

Или вот такой, уже переработанный, скрипт:

<SCRIPT LANGUAGE="JavaScript">
<!function vozrast(den_r_s)
{
var today = new Date();
// функция для подсчета количества лет и месяцев между датой var den_r = new Date(den_r_s);
// введенной и текущей.

var let=today.getYear()-den_r.getYear();
//кол-во лет (условно) var mes=today.getMonth()-den_r.getMonth();
//кол-во месяцев (условно) var dney = today.getDate()-den_r.getDate();
var den__r = den_r.getDate();
// чисто день, когда родился var den__s = today.getDate();
// сегодняшнее число
if (let > 1900) { let = let -1900 }
// из-за нескладухи с Оперой
if (mes < 0)
{ let = let — 1
// количество лет mes = 12 — Math.abs(mes) }
// количество месяцев
if ((mes == 0) && (den__r>den__s))
{ mes = 12
let = let — 1
}
// осталось меньше месяца до Дня рождения
if ((mes == 0) && (den__r<den__s)) { mes = 0 }
// день рожд уже прошел if ((dney < 0) && (mes != 0))
{ mes = mes — 1 }
// количество месяцев

let_n = let % 10;
var let_s = '';

if (let_n == 1) { let_s = ' год '; }
if ((let_n > 1) && (let_n < 5)) { let_s = ' года
'; }
if ((let_n == 0) || (let_n == 9) || ((let_n > 4)
&& (let_n < 9))) { let_s = ' лет '; }

if (mes == 1) { mes_s = ' месяц '; }
if ((mes > 1) && (mes < 5)) { mes_s = ' месяца '; }
if ((mes==0) || ((mes > 4) && (mes < 13)))
{ mes_s = ' месяцев '; }

var str_show1 = let+let_s;
var str_show2 = mes +mes_s;
if (mes == 0)
{ var str_show2 = ' '; }

if ((today.getMonth() == den_r.getMonth()) &&
(today.getDate() == den_r.getDate()))
{
str_show1 = 'сегодня ровно ';
str_show2 = let+let_s;
}
if ((mes == 0) && (den__r<den__s))
{
str_show1 = 'уже ';
str_show2 = let+let_s;
}
if ((mes == 0) && (den__r>den__s))
{
str_show1 = 'почти ';
str_show2 = let+let_s;
}

document.write(str_show1+str_show2);
}
// -->
</SCRIPT>


Сергей Паюк

Использование:

<SCRIPT LANGUAGE="JavaScript">
<!vozrast("April 09, 1972")
// использование функции "Возраст" // -->
</SCRIPT>


Сергей Паюк



Copyright © 2000-2004 Сообщество Чайников
Контактная информация