JavaScript, 만 나이 계산하기

라용·2022년 8월 21일
0

위코드 - 스터디로그

목록 보기
11/100

wecode 레플릿 과제를 풀며 정리한 내용입니다.

미국은 태어나면 0살이고 1년 후 생일 지나야 1살이 됩니다. 반면 한국은 태어나면 1살이고 연도가 빠뀔 때마다 한 살씩 먹습니다. 이 기준을 가지고 만 나이를 계산하는 함수를 구현합니다. 만 나이는 현재 연도에서 출생 연도를 뺀 후 생일이 지났으면 그대로 사용하고, 생일이 아직 안 지났으면 1살을 빼줍니다. (한국 나이는 현재 연도와 출생 연도를 뺀 후 1살을 더합니다.)

아래 사항을 참고합니다.

  • birthday 라는 인자를 받습니다.
  • birthday 는 Date 객체 입니다. (string 이 아님)
  • birthday 라는 인자를 넣었을 때 현재를 기준으로 만으로 계산한 나이를 리턴합니다.
  • 생일 정보값은 1990-03-21T00:45:06.562Z

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));
profile
Today I Learned

0개의 댓글