[JavaScript] 달의 말일 구하기
1. 전체 예시 코드
function lastDay(date){
/**
* 1) 인수를 Date 타입으로 변환하고 해당 달을 구한다.
**/
var date = new Date(date);
var month = new Date(date).getMonth();
/**
* 2) 1월부터 12월까지의 말일을 list로 만든다.
**/
var lastDayList = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
/**
* 3) 1)에서 구한 month를 list의 index로 사용해 list에서 값을 구한다.
**/
var lastDay = lastDayList[month];
/**
* 4) 2월일 경우 date의 연도가 윤년인지 아닌지를 구한다.
* 윤년이라면 2월의 말일로 29일을 대입한다.
**/
if (month == 1 && (leapYear(date))) lastDay = 29;
}
return lastDay;
}
2. 과정
1) 인수를 Date 타입으로 변환하고 getMonth 메소드로 date에 해당하는 달을 구한다.
var date = new Date(date);
var month = new Date(date).getMonth();
2) 달마다 말일은 정해져 있으므로 1월부터 12월까지의 말일을 list로 만든다.
var lastDayList = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
3) getMonth로 달을 구하면 1월부터 12월까지 0 ~ 11의 값으로 나타난다.
이를 이용해 list[index]로 말일을 구한다.
var lastDay = lastDayList[month];
4) 2월이라면 윤년인지에 따라 말일이 달라지므로 하므로 윤년인지 아닌지를 확인한다.
month가 1이라면 2월이므로 윤년 여부를 확인하고 말일로 29를 반환한다.
윤년인지 확인하는 법: https://catch-115.tistory.com/3
if (month == 1 && (leapYear(date))) lastDay = 29;
3. 결과
console.log("2022년 2월 : " + lastDay(("2022/02/16")));
console.log("2024년 2월 : " + lastDay(("2024/02/14")));
console.log("2022년 7월 : " + lastDay(("2022/07/16")));
console.log("2023년 3월 : " + lastDay(("2023/03/14")));
2024년은 윤년이므로 29가 return된다.
'JavaScript' 카테고리의 다른 글
[JavaScript][Date]윤년 여부 확인하기 (0) | 2022.02.16 |
---|
댓글