Для определения возраста по дате рождения у меня получилась такая функция:
function GetAgeByDate(BirthDate) {
if (IsEmptyValue(BirthDate)) {
return null;
}
var NowDate = System.Now();
var TempBirthDate = new Date(BirthDate);
var TempNowDate = new Date(NowDate);
var BirthFullYear = TempBirthDate.getFullYear();
var BirthMonth = TempBirthDate.getMonth();
var BirthDay = TempBirthDate.getDate();
var NowFullYear = TempNowDate.getFullYear();
var NowMonth = TempNowDate.getMonth();
var NowDay = TempNowDate.getDate();
if (BirthFullYear >= NowFullYear) {
return 0;
} else {
if ((BirthMonth > NowMonth) || ((BirthMonth == NowMonth) && (BirthDay > NowDay))) {
return (NowFullYear - BirthFullYear - 1);
} else {
return (NowFullYear - BirthFullYear);
}
}
}
if (IsEmptyValue(BirthDate)) {
return null;
}
var NowDate = System.Now();
var TempBirthDate = new Date(BirthDate);
var TempNowDate = new Date(NowDate);
var BirthFullYear = TempBirthDate.getFullYear();
var BirthMonth = TempBirthDate.getMonth();
var BirthDay = TempBirthDate.getDate();
var NowFullYear = TempNowDate.getFullYear();
var NowMonth = TempNowDate.getMonth();
var NowDay = TempNowDate.getDate();
if (BirthFullYear >= NowFullYear) {
return 0;
} else {
if ((BirthMonth > NowMonth) || ((BirthMonth == NowMonth) && (BirthDay > NowDay))) {
return (NowFullYear - BirthFullYear - 1);
} else {
return (NowFullYear - BirthFullYear);
}
}
}
10 мая 2012 12:57
может лучше возвращать 0 в этих строка кода:
if (IsEmptyValue(BirthDate)) { return null; }
10 мая 2012 13:11
Изначально было 0, но затем заменил на null. Считаю так правильнее, ведь это всё же разные ситуации.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать