#TIL07, Javascript Date() 만나이 구하기

April·2021년 4월 15일
0

✨Javascript

목록 보기
5/45

개인 공부를 위해 작성했습니다

생일 입력받아 만나이 구하기

미국을 비롯해 전세계 대부분의 나라들이 생일을 기준으로 나이를 계산 한다. 쉽게 말해 미국은 태어나자마자 0살이고 생일을 지나야 비로소 한 살이 된다.
반면에 한국은 태어나자마자 1살이고 연도가 바뀔 때마다 한 살씩 먹는다.
예를 들어 미국에서는 1995년 9월 12일에 태어났으면 1995년 9월 12일에는 0살이고 1996년 9월 12일이 되야 1살이 된다. 그에 비해 한국에서는 1995년 9월 12일에 태어나자마자 1살이고 1996년 1월 1일에 2살이 된다.
미국이나 다른 나라가 사용하는 나이 계산법은 우리나라에서는 만 나이 라고 한다

○만나이를 구하려면

  • 오늘 날짜의 연도에서 생일의 연도를 빼고
    const year = now.getFullYear() - birth.getFullYear();
  • 오늘 날짜와 생일의 월을 비교하고
  • 오늘 날짜와 생일의 일을 비교해서
  • 생일이 지났으면 year에서 -1 한다
function getWesternAge(birthday) {
  // console.log(birthday);
  const birth = new Date(birthday); 
  const now = new Date();
  // console.log(now);
  const year = now.getFullYear()- birth.getFullYear();
  const nowMonth = birth.getMonth()+1;
  // console.log(nowMonth);
  const birthMonth =  now.getMonth()+1;
  // console.log(birthMonth);
  const m = birthMonth - nowMonth;
  // console.log(m);
  if (m < 0 || (m === 0 && now.getDate() < birth.getDate())) { // 생일이 지났으면
    // now.getDate() < birth.getDate() 생일의 "일"이 오늘보다 크고
    // m === 0 오늘과 같은 월 이거나
    // 같은 월이면
    return year -1; // 생일이 안지났으니까 -1
  }
  return year; 
}

console.log(getWesternAge("1990-03-21"));

🚩집중! getMonth 메서드는, 현재 달보다 1 작은 값을 반환 하므로 주의!!


✅ 목표!

  • 문제가 안 풀릴땐 차근차근 정리해보고
  • 정리한대로 하나씩 코딩을 해보면
  • 어느샌가.. 결과가?!👀
profile
🚀 내가 보려고 쓰는 기술블로그

0개의 댓글