Mestniydevil
@Mestniydevil

Как рассчитать количество полных лет?

Помогите разобраться с ошибкой что я не так делаю!!! Нужно рассчитать количество полных лет. Где-то я допускаю ошибку.

var mydata ="2.1.1983";
    
    function declOfNum(number, titles) {
        cases = [2, 0, 1, 1, 1, 2];
        return number+" "+titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ];
    }
    function birthDateToAge(b) {
        var n = new Date(), b = new Date(b),
            age = n.getFullYear() - b.getFullYear();
        return n.setFullYear(1970) < b.setFullYear(1970) ? age - 1 : age;
    }
    document.write( declOfNum(birthDateToAge(mydata), ['год', 'года', 'лет']) );
  • Вопрос задан
  • 901 просмотр
Решения вопроса 1
hzzzzl
@hzzzzl
вычитаю 1 от разницы между годами, добавляю 1 если день рождения "в этом году уже был"
d это Date(), например new Date(2000, 2, 4) - 4 марта 2000

function diff(d) {
	const now = new Date()
	const addOne = now.getMonth() - d.getMonth() >= 0 && now.getDate() - d.getDate() >= 0
	const diff = now.getFullYear() - d.getFullYear()
	return diff - 1 + (addOne ? 1 : 0)
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы