Как сделать так, что бы при выводе алерта с датой рождения указывалось окончание год, лет, года. например (тебе- 11 лет, тебе 4 года)?

Вот такой есть код:

var name = prompt("Привет, введи своё имя", " ");
var age = prompt("Введи год рождения", " ");

if (name == "null" || name == undefined || name == "") {
alert("Покаааа!!!");
}else if
(age != "null" || age != undefined || age != ""){
confirm("Идем дальше??");
alert("Минутку......");
alert("Тебе" + (age - 2016) + "лет");
}else{
alert("Пока")
}
  • Вопрос задан
  • 210 просмотров
Пригласить эксперта
Ответы на вопрос 6
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
если возраст от 11 до 19 
    вывести "лет"
иначе если последняя цифра возраста 1
    вывести "год"
иначе если последняя цифра возраста от 2 до 4
    вывести "года"
иначе
    вывести "лет"
Ответ написан
Комментировать
IonDen
@IonDen
JavaScript developer. IonDen.com
Вам поможет конструкция switch
Ответ написан
Комментировать
@Wheelie
age - 2016 что??

age // 1991
alert("Тебе" + (age - 2016) + "лет");  // Тебе -25 лет


почему мне минус то?
Ответ написан
@nikita-slb
Вот так это можно сделать на php, на js переделать логику не долго

function true_wordform($num, $form_for_1, $form_for_2, $form_for_5){
						$num = abs($num) % 100; // берем число по модулю и сбрасываем сотни (делим на 100, а остаток присваиваем переменной $num)
						$num_x = $num % 10; // сбрасываем десятки и записываем в новую переменную
						if ($num > 10 && $num < 20) // если число принадлежит отрезку [11;19]
							return $form_for_5;
						if ($num_x > 1 && $num_x < 5) // иначе если число оканчивается на 2,3,4
							return $form_for_2;
						if ($num_x == 1) // иначе если оканчивается на 1
							return $form_for_1;
						return $form_for_5;
					}


Потом вызываем как-то так:

print true_wordform($years, "год", "года", "лет");
Ответ написан
Комментировать
@AndryG
function endingsForm(n, form1, form2, form5){
  var last_digit = n % 10;
  var last_two_digits = n % 100;

  if(last_digit == 1 && last_two_digits != 11){
    return form1;
  }
  if((last_digit == 2 && last_two_digits != 12)
      || (last_digit == 3 && last_two_digits != 13)
      || (last_digit == 4 && last_two_digits != 14)){
    return form2;
  }
  return form5
}

endingsForm(years, "год", "года", "лет");
Ответ написан
Комментировать
victorzadorozhnyy
@victorzadorozhnyy
можно в зависимости от правил русского языка сделать переменную содержащую лет, года и тд и выводить ее после проверки age. не силен в русском, но вот ссылка
https://www.lingq.com/learn/ru/preview/item/55200/
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы