본문 바로가기
JavaScript

[JavaScript][Date]달의 말일 구하기

by Baley 2022. 2. 17.

[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

 

[JavaScript] [Date윤년 여부 확인하기

[JavaScript] [Date] 윤년 여부 확인하기 1. 전체 예시 코드 function leapYear(date){ /** * 1) 인수 date를 Date 타입으로 바꾸고 해당 연도를 구한다. **/ let year = new Date(date).getFullYear(); var resul..

catch-115.tistory.com

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

댓글