본문 바로가기

Web Programming/JavaScript & TypeScript

자바스크립트로 만 나이, 연 나이, 세는 나이 한번에 구하기

반응형

연단위로 나이를 세는 경우, 만 나이, 연 나이, 세는 나이 이렇게 3가지가 나올 수가 있다. 각각 나이의 사용은 다음과 같다.

만 나이 : 법적 나이로, 법률 및 공문서 등에는 만 나이를 사용해야 한다.

연 나이 : 연도를 제외한 생일을 모를 때 사용할 수 있다. 또한 청소년 보호법 등에서, "n세가 되는 해의 1월 1일을 맞이한 사람"처럼 우회적으로 사용하기도 한다.

세는 나이 : 주로 일상 생활에서 사용하는 나이로, 연 나이에 한 살을 더한 값인 '햇수'다.  

 

다음 함수는 2022년 4월 13일 기준으로 1970년 12월 31일생의 나이를  {age: 51, yearAge: 52, countingAge: 53}으로 반환한다.

아래 코드를 사용하면 나이 계산을 만나이, 연나이, 세는나이를 한번에 할 수 있다.

 

 

function getAge(birthdate) {
    const today = new Date();
    const yearDiff = today.getFullYear() - birthdate.getFullYear();
    const monthDiff = today.getMonth() - birthdate.getMonth();
    const dateDiff = today.getDate() - birthdate.getDate();

    const isBeforeBirthDay = monthDiff < 0 || monthDiff === 0 && dateDiff < 0;

    return {
        age: yearDiff + (isBeforeBirthDay ? -1 : 0),
        yearAge: yearDiff,
        countingAge: yearDiff + 1,
    }
}

 

반응형