К основному контенту

"10 негритенка" или как правильно сформировать подпись к числу

 Для того чтобы добавить окончания к числам (1 человек, 2 человека, 5 людей), я использую следующий PHP скрипт:
    /**
     * Формирование надписей к количеству (олень, оленя, оленей)
     *
     * @param int $n - Числовое значение
     * @param string $form1 - 1 человек, ребенок
     * @param string $form2 - 2 человека, ребенка
     * @param string $form5 - 5 человек, детей
     * @return string - результат
     */
    function wordDeclension($n, $form1, $form2, $form5)
    {
        $n = abs($n) % 100;
        $n1 = $n % 10;
        if ($n > 10 && $n < 20) return $form5;
        if ($n1 > 1 && $n1 < 5) return $form2;
        if ($n1 == 1) return $form1;
        return $form5;
    }
     
    // переберем для примера
    for($afro_childs = 10; $afro_childs > 0;$afro_childs--){
    
            echo $afro_childs . " " .
            wordDeclension($afro_childs, 'негритенок', 'негритенка', 'негритят');  

    }
Результат:


10 негритят
9 негритят
8 негритят
7 негритят
6 негритят
5 негритят
4 негритенка
3 негритенка
2 негритенка
1 негритенок

Комментарии

Популярные сообщения из этого блога

Сон, усталость и эффективность - есть связь!

Не зря треть жизни мы проводим во сне...


Удаление всех запущенных контейнеров

Для остановки/удаления всех запущенных контейнеров можно использовать следующие команды
Остановить: docker stop $(docker ps -a -q)
Удалить:


docker rm $(docker ps -a -q)

Аналог php функции number_format на javascript

function number_format (number, decimals, decPoint, thousandsSep) { number = (number + '').replace(/[^0-9+\-Ee.]/g, '') var n = !isFinite(+number) ? 0 : +number var prec = !isFinite(+decimals) ? 0 : Math.abs(decimals) var sep = (typeof thousandsSep === 'undefined') ? ',' : thousandsSep var dec = (typeof decPoint === 'undefined') ? '.' : decPoint var s = '' var toFixedFix = function (n, prec) { var k = Math.pow(10, prec) return '' + (Math.round(n * k) / k) .toFixed(prec) } s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.') if (s[0].length > 3) { s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep) } if ((s[1] || '').length < prec) { s[1] = s[1] || '' s[1] += new Array(prec - s[1].length + 1).join('0') } return s.join(dec) }