wecode 레플릿 과제를 풀며 정리한 내용입니다.
미국은 태어나면 0살이고 1년 후 생일 지나야 1살이 됩니다. 반면 한국은 태어나면 1살이고 연도가 빠뀔 때마다 한 살씩 먹습니다. 이 기준을 가지고 만 나이를 계산하는 함수를 구현합니다. 만 나이는 현재 연도에서 출생 연도를 뺀 후 생일이 지났으면 그대로 사용하고, 생일이 아직 안 지났으면 1살을 빼줍니다. (한국 나이는 현재 연도와 출생 연도를 뺀 후 1살을 더합니다.)
아래 사항을 참고합니다.
Date
객체로 현재 시간을 가져오고 아래와 같은 메소드로 시간을 추출할 수 있습니다.
let rightNow = new Date(); // 현재 시간
let year = rightNow.getFullYear(); // 년도
let month = rightNow.getMonth()+1; // 월, + 1 해야 함
let date = rightNow.getDate(); // 일
let day = rightNow.getDay(); // 요일, 숫자정보로 표기
let currentHour = rightNow.getHours(); // 시간
let currentMin = rightNow.getMinutes(); // 분
우선 생일 정보를 Date
객체에 담고,
let date = new Date('1990-03-21T00:45:06.562Z')
현재 연도와 출생 연도를 빼서 만 나이를 구하고 (생일이 지났을 경우 그대로 쓸 만 나이)
function getWesternAge(birthday) {
let today = new Date();
let birthDay = new Date(birthday);
let age = today.getFullYear() - birthDay.getFullYear();
}
달은 + 1을 합니다.
function getWesternAge(birthday) {
let today = new Date();
let birthDay = new Date(birthday);
let age = today.getFullYear() - birthDay.getFullYear();
let todayMonth = today.getMonth() + 1;
let birthMonth = birthDay.getMonth() + 1;
}
이제 조건문을 만들어 추가합니다. 현재와 생일을 비교해 생일이 지났으면 -1 을 해줍니다. (생일의 월이 현재의 월보다 크거나, 월이 같을 경우 생일의 일이 더 클 경우)
function getWesternAge(birthday) {
let today = new Date();
let birthDay = new Date(birthday);
let age = today.getFullYear() - birthDay.getFullYear();
let todayMonth = today.getMonth() + 1;
let birthMonth = birthDay.getMonth() + 1;
if (birthMonth > todayMonth || (birthMonth === todayMonth && birthDay.getDate() >= today.getDate())) {
age--;
}
return age;
}
let date = new Date('1990-03-21T00:45:06.562Z')
console.log(getWesternAge(date));