JavaScript - 이번 달(특정 달)의 1일, 마지막 일 구하기

이번 달, 또는 특정 달의 1일과 마지막 일을 찾는 방법을 소개합니다.

1. 특정 달의 1일과 마지막 일 계산

new Date(year=2022, month=2, day=1)은 22년 3월 1일의 Date 객체를 생성합니다. 달(month)은 1월이 0부터 시작하므로, 3월은 2를 인자를 전달해야 됩니다.

let firstDate = new Date(2022, 2, 1);
console.log(firstDate.toLocaleString())  //Output: 3/1/2022, 12:00:00 AM

3월의 마지막 일은 4월 1일에서 하루를 빼면 3월 마지막 일이 됩니다. 따라서, 아래와 같이 4월 1일의 Date 객체(Date(2022, 3, 1))에서 1일을 빼면 됩니다.

let lastDate = new Date(2022, 3, 0);
console.log(lastDate.toLocaleString())  //Output: 3/31/2022, 12:00:00 AM

2. 이번 달의 1일과 마지막 일 계산

특정 달의 계산 방법을 이용하여 이번 달의 1일과 마지막 일을 계산하면 됩니다.

대신, new Date()로 오늘의 Date 객체를 만들고, 이 객체에서 년, 월, 일 정보를 가져와야 합니다.

아래와 같이 year과 month를 가져와서 위와 같이 이번 달의 1일을 찾고, 다음 달의 1일에서 하루를 빼서 이번 달의 마지막 날을 계산할 수 있습니다.

let today = new Date();
console.log("today: " + today.toLocaleString())

let firstDate = new Date(today.getFullYear(), today.getMonth(), 1);
console.log("first: " + firstDate.toLocaleString())

let lastDate = new Date(today.getFullYear(), today.getMonth() + 1, 0);
console.log("last: " + lastDate.toLocaleString())

Output:

today: 9/3/2022, 10:25:47 AM
first: 9/1/2022, 12:00:00 AM
last: 9/30/2022, 12:00:00 AM

3. Date에서 년, 월, 일 가져오기

Date.getFullYear(), Date.getMonth(), Date.getDate()는 Date 객체의 년, 월, 일 정보를 가져옵니다.

let today = new Date();

let firstDate = new Date(today.getFullYear(), today.getMonth(), 1);
console.log("first: " + firstDate.toLocaleString())
console.log("Year: " + firstDate.getFullYear())
console.log("Month: " + firstDate.getMonth())
console.log("Day: " + firstDate.getDate())

Output:

first: 9/1/2022, 12:00:00 AM
Year: 2022
Month: 8
Day: 1
Loading script...
codechachaCopyright ©2019 codechacha