frontPanel/src/utils/declension.ts
2024-02-06 17:39:02 +03:00

34 lines
901 B
TypeScript

import { PrivilegeValueType } from "@frontend/kitui";
function declension(
number: number,
declensions: string[],
cases = [2, 0, 1, 1, 1, 2],
) {
return declensions[
number % 100 > 4 && number % 100 < 20
? 2
: cases[number % 10 < 5 ? number % 10 : 5]
];
}
export function getDeclension(
number: number,
word: PrivilegeValueType | "месяц" | "год" | string,
): string {
switch (word) {
case "шаблон":
return declension(number, ["шаблон", "шаблона", "шаблонов"]);
case "день":
return declension(number, ["день", "дня", "дней"]);
case "месяц":
return declension(number, ["месяц", "месяца", "месяцев"]);
case "год":
return declension(number, ["год", "года", "лет"]);
case "МБ":
return "МБ";
default:
return "ед.";
}
}