Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Вывод правильных окончаний слов (http://www.flasher.ru/forum/showthread.php?t=98832)

Дружище 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));
}



Часовой пояс GMT +4, время: 07:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.