Develop/JAVA
[Java] 특정 달의 마지막 날짜와 요일 구하기
issuemaker99
2025. 2. 19. 13:31
728x90
1. YearMonth을 활용한 방법 (Java 8 이상)
Java 8 이상에서는 java.time 패키지를 활용하면 간단하게 특정 달의 마지막 날짜와 요일을 구할 수 있습니다.
import java.time.DayOfWeek;
import java.time.YearMonth;
import java.time.LocalDate;
public class LastDayOfMonthExample {
public static void main(String[] args) {
int year = 2024;
int month = 2; // 2월
// YearMonth 객체 생성
YearMonth yearMonth = YearMonth.of(year, month);
// 해당 월의 마지막 날짜 가져오기
int lastDay = yearMonth.lengthOfMonth();
// LocalDate로 변환하여 요일 가져오기
LocalDate lastDate = yearMonth.atEndOfMonth();
DayOfWeek dayOfWeek = lastDate.getDayOfWeek();
// 출력
System.out.println(year + "년 " + month + "월의 마지막 날짜: " + lastDay);
System.out.println("해당 날짜의 요일: " + dayOfWeek);
}
}
2. Calendar 클래스를 활용한 방법 (Java 8 미만)
Java 8 이전 버전에서는 Calendar 클래스를 사용해야 합니다.
import java.util.Calendar;
public class LastDayOfMonthWithCalendar {
public static void main(String[] args) {
int year = 2024;
int month = 2; // 2월 (주의: Calendar의 month는 0부터 시작)
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, 1); // 월을 0부터 시작하기 때문에 -1 해줌
int lastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
// 마지막 날짜의 요일 구하기
calendar.set(Calendar.DAY_OF_MONTH, lastDay);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
// 요일을 문자열로 변환
String[] weekDays = {"", "일", "월", "화", "수", "목", "금", "토"};
String dayOfWeekStr = weekDays[dayOfWeek];
// 출력
System.out.println(year + "년 " + month + "월의 마지막 날짜: " + lastDay);
System.out.println("해당 날짜의 요일: " + dayOfWeekStr + "요일");
}
}
실행 결과 (2024년 2월 기준)
2024년 2월의 마지막 날짜: 29
해당 날짜의 요일: 목요일
- Java 8 이상: YearMonth와 LocalDate를 활용하는 것이 간결하고 직관적.
- Java 8 미만: Calendar 클래스를 활용하여 마지막 날짜와 요일을 구할 수 있음.
LIST