Склонение слов по русским падежам

211
10 июня 2022, 10:50

Подскажите, почему неверно склоняются слова.

let date = new Date();
let week = ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'];
let monthes = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];
let day = date.getDate(),
  month = monthes[date.getMonth()],
  year = date.getFullYear(),
  dayWeek = week[date.getDay()],
  hours = date.getHours(),
  minutes = date.getMinutes(),
  seconds = date.getSeconds();
function declOfNum(number, titles) {
  let cases = [2, 0, 1, 1, 1, 2];
  return titles[(number % 100 > 4 && number % 100 < 20) ? 2 : cases[(number % 10 < 5) ? number % 10 : 5]];
}
console.log('Сегодня ' + day + ' ' + month + ' ' + year + ' года, ' + dayWeek + ', ' + hours + ' ' + declOfNum(5, ['час', 'часа', 'часов']) + ' ' + minutes + ' ' + declOfNum(5, ['минута', 'минуты', 'минут']) + ' ' + seconds + ' ' + declOfNum(5, ['секунда', 'секунды', 'секунд']));

Answer 1
... + declOfNum(5, ['секунда', 'секунды', 'секунд']));
                ^

Почему именно пять?

READ ALSO
Как подключить SwiperJS по npm на NuxtJS?

Как подключить SwiperJS по npm на NuxtJS?

Как подключить SwiperJS по npm на NuxtJS?

246
Анимировать выделение шрифта на кривой SVG

Анимировать выделение шрифта на кривой SVG

У меня есть текст, который движется по кругу SVG, и который масштабируется в зависимости от размера окна - Я хочу анимировать текст так, чтобы...

192
Увеличение переменной с input кнопкой - кастомный вариант?

Увеличение переменной с input кнопкой - кастомный вариант?

Как реализовать нативным JavaScript, чтобы я брал переменную с input и ещё увеличивал по клику на единицу? Обычный input type="number" не подходит, потому...

190
Webpack. Module parse failed: Unexpected token (1:0)

Webpack. Module parse failed: Unexpected token (1:0)

Попытка сборки проекта на вебпаке 54

211