mccrush
@mccrush
Vue.js Developer

Как получить дату первого дня недели, зная номер недели?

Для примера, возьмем 10 неделю в году.

Предположим, на дворе 2023 год. Если посмотреть на календарь с номерами недель, то увидим, что в 10 неделю попадают дни начиная с 6 марта (пн) и заканчивая 12 марта (вс).

Как на языкеjavascript узнать, что первый день (пн) выбранной недели, это 6 марта?

В идеале, это должна быть функция, которая на вход получает номер недели, и возвращает строку с датой. Например, такую: "2023-03-06T00:00"
  • Вопрос задан
  • 238 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
const dateByWeekNumber = (year, week) => {
  // Cоздаём дату, гарантированно входящую в первую неделю.
  const date = new Date(year, 0, 7);
  // Откатываемся до первого четверга года
  // По ГОСТ ИСО 8601-2001 первая неделя года должна содержать четверг
  date.setDate(date.getDate() - (date.getDay() + 10) % 7);
  // Переходим в нужную неделю
  date.setDate(date.getDate() + (week - 1) * 7);
  // Откатываемся до понедельника
  date.setDate(date.getDate() - 3);
  return date;
};
dateByWeekNumber(2023, 10);
//  Date Mon Mar 06 2023 00:00:00 GMT+0300 (Москва, стандартное время)
dateByWeekNumber(2020, 1);
// Date Mon Dec 30 2019 00:00:00 GMT+0300 (Москва, стандартное время)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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