Реализация на js, недавно писал, не совсем по вопросу, но из той же оперы:
function slang(number, par) {
var text;
if (number>100) {
return slang(number%100, par);
}
if (number>10 && number<15) {
if (par=="d") text=" дней"; else if (par="z") text=" записей ";
return text;
} else {
switch(number%10) {
case 0: case 5: case 6: case 7: case 8: case 9:
if (par=="d") text=" дней"; else if (par="z") text=" записей ";
return text;
case 1:
if (par=="d") text=" день"; else if (par="z") text=" запись ";
return text;
case 2: case 3: case 4:
if (par=="d") text=" дня"; else if (par="z") text=" записи ";
return text;
}
}
}
Принимает в качестве значений два параметра: (int) число и идентификатор слова (d - день, z - запись).
Работает так:
console.log("Выбрано 135 "+slang(135, "z")+" за 2"+ slang(2, "d"));
Выведет: Выбрано 135 записей за 2 дня.