[javascript] 특정 주차의 시작일과 종료일 계산하기
원하는 주차의 시작일과 종료일을 자바스크립트로 계산하는 방법을 살펴보겠습니다.
문제 정의
특정 연도와 주차 번호를 받아 해당 주의 시작일(월요일)과 종료일(일요일)을 계산하는 문제입니다.
해결 방법
- 먼저, 주어진 연도와 주차 번호를 기반으로 시작일과 종료일을 계산합니다.
- 해당 연도의 1월 1일이 무슨 요일인지 확인합니다.
- 주어진 주차 번호에 따라 시작일과 종료일을 계산합니다.
- 계산된 시작일과 종료일을 반환합니다.
아래는 이를 수행하는 getWeekStartAndEndDates
함수의 예시 코드입니다.
function getWeekStartAndEndDates(year, weekNumber) {
var startDate = new Date(year, 0, (weekNumber - 1) * 7 + 1);
var endDate = new Date(year, 0, weekNumber * 7);
var day = startDate.getDay();
var diff = startDate.getDate() - day + (day == 0 ? -6 : 1);
startDate = new Date(startDate.setDate(diff));
endDate = new Date(endDate.setDate(diff + 6));
return {
start: startDate,
end: endDate
};
}
var year = 2022;
var weekNumber = 7;
var dates = getWeekStartAndEndDates(year, weekNumber);
console.log('주차 시작일:', dates.start.toDateString()); // 주차 시작일: Mon Feb 07 2022
console.log('주차 종료일:', dates.end.toDateString()); // 주차 종료일: Sun Feb 13 2022
위 코드는 getWeekStartAndEndDates
함수를 사용하여 주어진 연도와 주차 번호에 해당하는 주의 시작일과 종료일을 계산하고 반환합니다.
이렇게 함으로써 자바스크립트를 활용하여 특정 주차의 시작일과 종료일을 간단히 계산할 수 있습니다.