Публикация

Подсчёт возраста по дате рождения в Terrasoft 3.X

Для определения возраста по дате рождения у меня получилась такая функция:

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);
                }
        }
}

Нравится

Поделиться

2 комментария

может лучше возвращать 0 в этих строка кода:

if (IsEmptyValue(BirthDate)) {
                return null;
}

Изначально было 0, но затем заменил на null. Считаю так правильнее, ведь это всё же разные ситуации.

Показать все комментарии