Просмотр полной версии : осталось ххх день/дня/дней
FireHawK
03.09.2005, 12:17
у меня есть скрипт расчитывающий скока дней осталось до конца подписки. (но это не важно).-- например -- осталось 102 дней.-- согласитесь не звучит - дней. нужно замутить :) проверку на окончание числа. тоесть хх1 - день
хх2-хх4 -- дня
хх5-хх0 -- дней.
с чего начать и ваще принимаю любую помосч :)). спасибо заранее.
пишешь
запоминаешь последнюю цифру в допустим k
типа k=((mynum/10)-Math.floor(mynum/10)))*10;
if(k==1) str="день"
else if (k>1 and k<5) str="дня" else str="дней"
и все
не проверял, но идея думаю понятна
Number.prototype.addSuffix = function(word, nul, one, two) {
var n = this%100;
n = n>20 ? n%10 : n;
return word+((n>4 || n == 0) ? nul : (n == 1) ? one : two);
};
ASSetPropFlags(Number.prototype, "addSuffix", 7, 1);
// TEST
for (this.num=33; this.num>=0; this.num--) {
trace(this.num.addSuffix("остал", "ось", "ся", "ось")+" "+this.num+" "+num.addSuffix("", "дней", "день", "дня"));
}
поясню:
word - неизменяемая часть слова.
nul - остаток слова при значении цифры равном 0
one - остаток слова при значении цифры равном 1
two - остаток слова при значении цифры равном 2
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.