[javascript] 특정 날짜의 해당 월의 첫 번째 주의 시작일과 종료일 구하기

먼저, moment.js나 date-fns와 같은 JavaScript 라이브러리를 사용하여 특정 날짜를 기준으로 해당 월의 시작일과 끝일을 계산합니다. 그 다음, 시작일을 구한 후에 getDay() 메서드를 이용하여 해당 요일을 구한 뒤, 시작일부터 해당 요일까지의 날짜를 해당 주의 시작일로 설정하고, 그 주의 마지막 날을 계산합니다.

아래는 moment.js를 사용하여 해당 기능을 구현하는 예제 코드입니다.

const moment = require('moment');

// 특정 날짜를 포맷에 맞게 생성
const selectedDate = moment('2022-09-15');

// 해당 월의 첫 번째 날
const firstDayOfMonth = moment(selectedDate).startOf('month');

// 특정 날짜가 몇 번째 주에 속하는지 구하기 (0부터 시작)
const weekOfMonth = Math.floor(selectedDate.date() / 7);

// 해당 주의 시작일과 종료일 계산
const startOfWeek = moment(firstDayOfMonth).add(weekOfMonth, 'weeks');
const endOfWeek = moment(startOfWeek).endOf('week');

console.log('해당 주의 시작일:', startOfWeek.format('YYYY-MM-DD'));
console.log('해당 주의 종료일:', endOfWeek.format('YYYY-MM-DD'));

현재 상황에 맞는 라이브러리를 사용하여 유사한 방법으로 해당 기능을 구현할 수 있습니다.

참고 문헌: