[JavaScript] birthdate 계산방법
2022. 9. 23. 09:35ㆍCodingTest/JavaScript Q
문제)만으로 계산한 나이를 구하는 함수인 getWesternAge 함수를 구현해 봅시다.
- 이 함수는 birthday 라는 인자를 받습니다.
- 이 birthday 는 Date 객체 입니다. birthday 라는 인자를 넣었을 때, 현재를 기준으로 만으로 계산한 나이를 리턴 해주세요.
- birthday 는 string이 아닌 Date 객체라는 걸 명심하세요 :)
- 예를 들어, 오늘이 2020년 7월 21일이고, birthday 값이 다음과 같다면:리턴 값은 30 이 되어야 합니다.
- 1990-03-21T00:45:06.562Z
- 리턴 값은 현재 나이가 반환 되어야 합니다.
function getWesternAge(birthday) {
let todate = new Date();
let age = todate.getFullYear()-birthday.getFullYear();
let toMonth = todate.getMonth()-birthday.getMonth();
if (toMonth < 0 || (toMonth = 0 && todate.getDate()<birthday.getDate()) ){
age--;
}
return age;
}
const birthday = new Date('1990-03-21');
console.log(getWesternAge(birthday));
module.exports = {getWesternAge};
현재 Date를 가져옵니다.
let todate = new Date();
현재 Date에서 생일을 뺀 나머값이 나이가 되는데
let age = todate.getFullYear()-birthday.getFullYear();
let toMonth = todate.getMonth()-birthday.getMonth();
만 나이를 구할 경우 아래 부분이 true 일 경우 나이에서 -1을 한다라는 의미이다.
toMonth가 0보다 작거나
toMonth가 0이랑 같고 todate.getDate()<birthday.getDate()이 오늘 날짜보다 생일날짜가 클 경우 true가 된다
true는 아직 생일이 지나지 않아서 만 나이로 계산할 경우 현재 나이에서 (age-- )-1을 해주다는 의미이다.
if (toMonth < 0 || (toMonth = 0 && todate.getDate()<birthday.getDate()) ){
age--;
'CodingTest > JavaScript Q' 카테고리의 다른 글
[JavaScript] 최소값(min), 최대값(max) number (1) | 2022.09.24 |
---|---|
[JavaScript] String <-> Number 변환 `${}` (0) | 2022.09.24 |
[JavaScript] 문자열(string)을 변경 indexOf() , slice() (0) | 2022.09.24 |
[JavaScript] Array 조작하기 unshift() , push() (0) | 2022.09.24 |
[JavaScript] 빈 객체(object)에 key : value 추가 (0) | 2022.09.23 |