PDA

Просмотр полной версии : Вывод правильных окончаний слов


Дружище
22.07.2007, 16:50
Доброго времяни суток! Подскажите кто сколько сможет! Какой код нужен для правельных окончаний в слове "день" при отсчёте дней!
(Пример: 1 день, 2 дня, 5 дней, 21 день...)

DarkLight
22.07.2007, 17:02
делаем числу %10, смотрим на результат и с помощью условного оператора выводим нужное слово

Дружище
22.07.2007, 17:23
Думаю, это не оптимально! Просто я програмировать только начал! Может если перевести числовую переменную, которая отвечает за колличество дней, в строковую, вычислить последний эллемент, поставить условия для определённого строкового эллемента и индивидульные условя для чисел от 11 до 19, будет ли этот вариант самым оптимальным!?

Cкептик
22.07.2007, 18:40
делаем условие для 1, 2, 3, 4. В остальных случаях "дней". Еще зависит от того, как именно будет вестись отсчет дней, т.е. как он реализован в коде. Все просто на самом деле.

iNils
22.07.2007, 20:23
var suffix:Array = ["дней", "день", "дня"];
function getSuffix (num:Number):String {
var str:String = String (num).substr (-1, 1);
if (str == "1" && num != 11) {
return suffix[1];
} else if ((str == "2" || str == "3" || str == "4") && num != 12 && num != 13 && num != 14) {
return suffix[2];
} else {
return suffix[0];
}
}
for (var i:Number = 0; i < 50; i++) {
trace (i + " " + getSuffix (i));
}