PDA

Просмотр полной версии : осталось ххх день/дня/дней


FireHawK
03.09.2005, 12:17
у меня есть скрипт расчитывающий скока дней осталось до конца подписки. (но это не важно).-- например -- осталось 102 дней.-- согласитесь не звучит - дней. нужно замутить :) проверку на окончание числа. тоесть хх1 - день
хх2-хх4 -- дня
хх5-хх0 -- дней.

с чего начать и ваще принимаю любую помосч :)). спасибо заранее.

dilsh
03.09.2005, 14:35
пишешь
запоминаешь последнюю цифру в допустим k
типа k=((mynum/10)-Math.floor(mynum/10)))*10;
if(k==1) str="день"
else if (k>1 and k<5) str="дня" else str="дней"
и все
не проверял, но идея думаю понятна

Iv
03.09.2005, 18:07
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("", "дней", "день", "дня"));
}

Iv
03.09.2005, 18:09
поясню:
word - неизменяемая часть слова.
nul - остаток слова при значении цифры равном 0
one - остаток слова при значении цифры равном 1
two - остаток слова при значении цифры равном 2