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
'Develop > JAVA' 카테고리의 다른 글
[Java] 봉인 클래스(Sealed Classes): Java 17의 혁신적인 기능과 예제까지 (0) | 2025.03.19 |
---|---|
[Java] 엑셀파일 읽어서 값 수정 후 다시 엑셀 다운로드 (0) | 2025.02.21 |
Spring Framework의 @Scheduled 어노테이션 완벽 가이드 (1) | 2025.02.14 |
[Java] REST API 호출 및 JSON 데이터를 DTO로 파싱하는 방법 (3) | 2025.01.08 |
[Java] 메모리 관리 및 가비지 컬렉션: 개념과 예제 (2) | 2024.11.17 |