...

Cклонять года и месяца, в зависимости от их количества

Тема в разделе "Примеры сценариев", создана пользователем ksannikov, 5 ноя 2025 в 14:35.

Метки:
  1. ksannikov

    ksannikov Активный участник

    Хочу поделиться с вами полезной функцией, которая позволяет склонять года и месяца, в зависимости от их количества.

    Например, у вас есть справочник гарантийных сроков, при создании нового элемента приложения можно указать кол-во месяцев и лет, хочется чтобы названия элементов приложений склонялись корректно и не было что-то типа "1 лет 3 месяцев"

    Функция ниже на вход принимает число (кол-во месяцев/лет) и тип(месяцы/года), результатом функции будет строка с количеством и правильным склонением типа


    Код:
    
    function genereationName(amountnumberperiod_type"year" "month") {
        
    // Вспомогательная функция для склонения года
        
    function year(nnumber) {
            
    Math.abs(n) % 100;
            
    let n1 10;
            if (
    10 && 20) return 'лет';
            if (
    n1 === 1) return 'год';
            if (
    n1 >= && n1 <= 4) return 'года';
            return 
    'лет';
        }

        
    // Вспомогательная функция для склонения месяца
        
    function month(nnumber) {
            
    Math.abs(n) % 100;
            
    let n1 10;
            if (
    10 && 20) return 'месяцев';
            if (
    n1 === 1) return 'месяц';
            if (
    n1 >= && n1 <= 4) return 'месяца';
            return 
    'месяцев';
        }

        return `${
    amount} ${period_type == "month" month(amount) : year(amount)}`
    }
    Еще больше полезной информации в ТГ канале WhatDaELMA365