Как получить правильную форму множественного числа существительного?

Рейтинг: 0Ответов: 2Опубликовано: 20.02.2015

Как получить правильную форму множественного числа существительного в моем случае?

pluralize_time = (current_time) ->
  current_time_modulo = current_time % 10
  if current_time_modulo >= 2 && current_time_modulo <= 4
    return "Просмотрено " + current_time + " секунды ролика"
  if current_time_modulo >= 5 && current_time_modulo <= 9 || current_time_modulo == 0
    return "Просмотрено " + current_time + " секунд ролика"
  if current_time_modulo == 1
    return "Просмотрена " + current_time + " секунда ролика"

Я получаю неправильные ответы в таких случаях:

Просмотрена 11 секунда ролика
Просмотрено 12 секунды ролика
Просмотрено 13 секунды ролика

Ответы

▲ 2Принят

На js:

function plural(num, words) {
    var cases = [2, 0, 1, 1, 1, 2];  
    return words[ (num % 100 > 4 && num % 100 < 20) ? 2 : cases[Math.min(num % 10, 5)] ];  
}

console.log(plural(2, ['секунда', 'секунды', 'секунд']));

Смотреть

▲ 1
function word($num, $words) {
    $cases = array (2, 0, 1, 1, 1, 2);  
    return $words[ ($num%100 > 4 && $num %100 < 20) ? 2 : $cases[min($num%10, 5)] ];  
}

echo word(11, array('секунда', 'секунды', 'секунд'));

Возможно, поможет.

Работает так: word(11, array(' секунда', ' секунды', ' секунд'))