안녕하세요.
오늘은 javascript의 주차 수 구하는 방법을 포스팅하려고 합니다.
자주 찾는 기능은 아니지만 한번씩 필요한 주차 수 구하는 함수입니다.
검색을 해보면 다양한 방법의 주차를 구하는 예제가 나와 있지만 저만의 색으로 만들어 봤습니다.
그럼 예제를 통해 설명하도록 하겠습니다.
1. getYearOfWeek() 해당 연도 기준의 주차 수 구하기
<script>
/**
* Document load
*/
document.addEventListener('DOMContentLoaded', () => {
// 기준 날짜
const standDate = new Date('2020-01-12');
// 해당 연도의 주 차 구하기
const yearOfWeek = getYearOfWeek(standDate);
console.log(standDate.getFullYear() + '년 ' + yearOfWeek + '주 차');
});
// 해당 연도의 주 차수 구기
function getYearOfWeek (date) {
// 기준 날짜
const currDate = date;
// 해당 연도 1월1일
const firstDate = new Date(date.getFullYear(), 0, 1);
// 일 수 구하기 : 기준 날짜 - 해당연도 시작 날짜
const diffDate = currDate.getTime() - firstDate.getTime();
// 일 수 구하기 시 * 분 * 초 * 밀리초 (주 시작 요일이 일요일인 경우 +1)
const diffDay = Math.abs(diffDate / (24 * 60 * 60 * 1000)) + 1;
// 일주 7일 기준으로 나누기
return Math.ceil(diffDay / 7);
}
</script>
함수 명은 getYearOfWeek로 지었고, new Date() 기준으로 날짜를 받을 수 있도록 하였습니다.
* 변수 설명
- currDate : 주차 수를 구할 기준 날짜
- firstDate : 해당 연도에서 1월 1일로 맞춘 연도의 첫 번째 날짜
- diffDate : 기준 날짜에서 해당연도 날짜 뺀 날짜 (기준 날짜가 해당 연도의 몇 번째 일수인지 구하기)
위의 날짜들을 구하고 난 후에 마지막 diffDate 날짜를 일수로 계산을 하고 일주 7일 기준으로 나눠줍니다.
* 일주의 시작 요일 정하기
- 일요일 시작일 : const diffDay = Math.abs(diffDate / (24 * 60 * 60 * 1000)) + 1;
- 월요일 시작일 : const diffDay = Math.abs(diffDate / (24 * 60 * 60 * 1000));
여기서 일주일의 시작 요일을 월요일로 했을 때에는 diffDay 마지막에 +1을 빼고, 일요일로 했을 때에는 +1을 해주면 됩니다.
위의 함수를 사용하여 날짜를 '2020-01-12' 기준으로 실행한 결과
주차 수는 잘 구해졌네요!
마무리
오늘은 해당연도 기준으로 주차 수를 구하는 함수를 만들어 봤습니다.
최대한 간단하고 심플하게 만들어 봤는데 어떠셨나요 ?! 날짜 구하는 함수는 항상 할 때마다 헷갈리다 보니 이렇게 생각날 때마다 정리를 해야겠습니다. 그래서 다음에는 월별 주차수 구하는 방법을 포스팅하겠습니다.
그럼 오늘도 저의 작고 소중한 글을 읽어주셔서 감사합니다.

'javascript > javascript' 카테고리의 다른 글
[javascript] 자바스크립트 해당 월의 주차 수 구하기 (0) | 2023.01.07 |
---|---|
[javascript] 자바스크립트 쿠키 저장, 조회, 삭제 배우기 (Cookie) (0) | 2023.01.06 |
[javascript] 자바스크립트 날짜 포맷 알아보자! (date format, date parse) (0) | 2022.12.30 |
[javascript] 자바스크립트 getElementsByName 배워보자! (0) | 2022.12.29 |
[javascript] 자바스크립트 getElementsByTagName 배워보자! (0) | 2022.12.29 |