@Robert_Norton

Посчитать количество дней недели?

Например получаю я определенную дату const date = new Date(year, month, day);.
И мне нужно найти в данном месяце неделю в которой наименьшее количество дней и вывести их количество. (Например есть неделя в которой 2 дня этого месяца, нужно вывести число 2).
Подскажите как реализовать? уже очень долго сижу не могу понять.
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
const mondaySunday = (d) => d.getDay() || 7; // чтоб воскресенье не 0, а 7
const getShortWeek = (d, last = false) => {
  const D = new Date(d.getTime()); // копия, чтобы ориг. дату не сбить
  D.setDate(1); // 1-й день месяца
  if (! last) return 7 - mondaySunday(D);
  
  D.setMonth(D.getMonth() + 1); // добавить месяц
  D.setDate(D.getDate() - 1);   // отнять день
  return mondaySunday(D);
}

const leastDays = (d) => Math.min(getShortWeek(d), getShortWeek(d, true));


leastDays(new Date(2021, 10, 10)) // 2
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы