Сколнение "год,года,лет"

Тема в разделе "Всякое", создана пользователем HooLIGUN, 28 янв 2014.

  1. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    Здравствуйте.
    Ув.программисты,подскжаите пожалуйста примерный php код для склонения слонения слов "год,года,лет"
    Например:
    Если 18, то вывести "Лет"
    Если 23, то "Года"
    Если 31, то вывести "Год"

    Спасибо
    P.S. Просто на сайте в профилях пользователей нет такого сколнения,хотелось бы поправить такую небольшую ошибку
     
    Последнее редактирование: 28 янв 2014
  2. Vaio

    Vaio

    Сообщения:
    628
    Симпатии:
    218
  3. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    Решил,кому интересно:
    PHP:
    $n=10// Возраст
    $n $n 100;
    $n1 $n 10;
    if (
    $n 10 && $n 20$word "лет";
    else{
    if (
    $n1 && $n1 5$word "года";
    else{
    if (
    $n1 == 1$word "год";
    else 
    $word "лет";
    }
    }
     
    Последнее редактирование: 29 янв 2014
    CTe6eJIeK_vRn нравится это.
  4. Vaio

    Vaio

    Сообщения:
    628
    Симпатии:
    218
    PHP:
    $n=11// количество лет

    $k $n 10;
    if(
    $k == 1)
       
    $word "год";
    elseif(
    $k >=&& $k <=4)
       
    $word "года";
    else
       
    $word "лет";

    echo 
    $n.' '.$word;

    //11 год
    Отличное решение!

    Неужели так трудно пройти по готовому поисковому запросу (в моем посте выше), кликнуть по 1 результату и использовать готовую, правильную функцию?
    Ты на создание этой темы и написанию этого кода потратил большое количество времени, которое гугл мог тебе сэкономить. :(
     
  5. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    К сожалению,мне не подходили варианты из гугла.Прежде чем что то спросить, я всегда пользуюсь поиском, а если это безрезультатно, или что то не получается , я обращаюсь за помощью на форумы.
     
  6. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    HooLIGUN, как я понял тут нет обработки чисел более 100
    а для 11,12,13,14 просто добавь исключение.
     
  7. Vaio

    Vaio

    Сообщения:
    628
    Симпатии:
    218
    1 результат из поисковика:

    PHP:
    Function GetWordForm($n$forms)
    {
        if (
    $n>0)
        {
            
    $n abs($n) % 100;
            
    $n1 $n 10;
            if (
    $n 10 && $n 20) return $forms[2];
            if (
    $n1 && $n1 5) return $forms[1];
            if (
    $n1 == 1) return $forms[0];
        }
        return 
    $forms[2];
    }
    и напишу пример использования

    PHP:
    $n      11;
    $forms  = ['год''года''лет'];

    echo 
    $n ' ' .  GetWordForm($n$forms);
    Чем они не подходили?
     
  8. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    Тем,что в движке IPB нельзя вывести echo.
    Нужно выводить по другому,например
    PHP:
    php]
    $var тест
    [/ 
    php]
    {
    $var}
    Выведет "тест" , там, где будет вставленно {$var}

    Заменить echo в вашем примере для меня трудно (я не особо разбираюсь в php, только малые основы) , по этому мне и не подошел этот код.
     
  9. Vaio

    Vaio

    Сообщения:
    628
    Симпатии:
    218
    PHP:
    $var GetWordForm($n$forms);