подскажите не могу в ловить эту задачу
Задача: Объявление переменной myAge и ее значения, например: const myAge = 20;
Вывод в консоль сообщения: “Мой возраст 21 год”(без кавычек), где “21” - значение переменной myAge (во время проверки оно может быть любым), а окончание “год”, должно зависеть от цифры возраста, например: 21 год, 22 года, 24 года, 25 лет, 19 лет, 20 лет.
Вор решение, если не в ловили:
function getAge (number) {
if (number >= 5 && number <= 20)
return 'лет'
number %= 10
if (number == 1)
return 'год'
if (number >= 2 && number <= 4)
return 'года'
return 'лет'
}
// Для вывода результата
for (let age of [1, 2, 12, 18, 20, 22, 24, 26, 28, 30])
console.log(`Мой возраст ${age} ${getAge(age)}`)
Есть еще такой прикольный вариант, как он Вам, пользователи?
function getAge (age) {
const words = {
'few': 'года',
'many': 'лет',
'one': 'год'
}
const key = new Intl.PluralRules().select(age)
return `Мой возраст ${age} ${words[key]}`
}
// Для вывода результата
for (let age of [1, 2, 12, 18, 20, 22, 24, 26, 28, 30])
console.log(getAge(age))
Склонение по числам на Delphi
(case - switch, div - целочисленное деление, mod - остаток (%))
//usage: PluralWord(3, "рубль", "рубля", "рублей");
function PluralWord(Amount: Integer; const One, Two, Five: string): string;
begin
Amount := Abs(Amount);
case 4 * Ord(1 = (Amount mod 100) div 10) + (Amount - 1) mod 10 of
0: Result := One;
1..3: Result := Two;
else
Result := Five;
end;
end;
for i := 1 to 30 do
Memo1.Lines.Add(Format('%d %s',[i, PluralWord(i, 'год', 'года', 'лет')]));
...
11 лет
...
19 лет
20 лет
21 год
22 года
23 года
24 года
25 лет
26 лет
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости