본문 바로가기
javascript/javascript

[javascript] 자바스크립트 해당연도의 주차수 구하기

by 산코디 2023. 1. 6.

 

 

안녕하세요.

오늘은 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' 기준으로 실행한 결과

주차 수는 잘 구해졌네요!

 

 

반응형

마무리

오늘은 해당연도 기준으로 주차 수를 구하는 함수를 만들어 봤습니다.

최대한 간단하고 심플하게 만들어 봤는데 어떠셨나요 ?! 날짜 구하는 함수는 항상 할 때마다 헷갈리다 보니 이렇게 생각날 때마다 정리를 해야겠습니다. 그래서 다음에는 월별 주차수 구하는 방법을 포스팅하겠습니다.

 

 

그럼 오늘도 저의 작고 소중한 글을 읽어주셔서 감사합니다.

 

 

 


 

반응형