Calendar 클래스를 사용하면 날짜와 시간을 조작하고, 날짜와 시간 정보를 쉽게 다루기 가능!
기능
- 날짜 및 시간 설정
- 날짜 및 시간 추출
- 날짜 및 시간 계산
- 날짜 및 시간 비교
Calendar 클래스의 기본 사용법
Calendar 클래스는 추상 클래스이므로, 직접 인스턴스를 생성할 수 없다. 대신, Calendar.getInstance() 메소드를 사용하여 Calendar 객체를 얻는다.
import java.util.Calendar;
public class CalendarExample {
public static void main(String[] args) {
// Calendar 객체 생성
Calendar calendar = Calendar.getInstance();
// 현재 날짜와 시간 출력
System.out.println("현재 날짜와 시간: " + calendar.getTime());
}
}
날짜와 시간 설정
날짜와 시간을 설정하려면 set 메소드를 사용한다
다음은 연도, 월, 일, 시, 분, 초를 설정하는 예
import java.util.Calendar;
public class CalendarExample {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
// 날짜와 시간 설정 (2024년 7월 26일 오후 3시 45분)
calendar.set(2024, Calendar.JULY, 26, 15, 45);
// 설정한 날짜와 시간 출력
System.out.println("설정한 날짜와 시간: " + calendar.getTime());
}
}
날짜와 시간 추출
Calendar 클래스의 다양한 get 메소드를 사용하여 날짜와 시간 정보를 추출할 수 있다
import java.util.Calendar;
public class CalendarExample {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
// 현재 연도, 월, 일, 시, 분, 초 추출
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1; // 월은 0부터 시작하므로 1을 더해야 실제 월이 됩니다.
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
// 추출한 정보 출력
System.out.printf("현재 날짜와 시간: %d-%d-%d %d:%d:%d%n", year, month, day, hour, minute, second);
}
}
날짜 및 시간 계산
날짜와 시간 계산을 위해 add 및 roll 메소드를 사용한다
- add 메소드: 날짜나 시간을 추가하거나 빼는 데 사용한다
- roll 메소드: 특정 필드의 값을 변경하며, 다른 필드의 값을 변경하지 않는다
import java.util.Calendar;
public class CalendarExample {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
// 현재 날짜 출력
System.out.println("현재 날짜: " + calendar.getTime());
// 7일 후의 날짜 계산
calendar.add(Calendar.DAY_OF_MONTH, 7);
System.out.println("7일 후: " + calendar.getTime());
// 1개월 전 날짜 계산
calendar.add(Calendar.MONTH, -1);
System.out.println("1개월 전: " + calendar.getTime());
// 10분 롤링 (10분 추가)
calendar.roll(Calendar.MINUTE, 10);
System.out.println("10분 후: " + calendar.getTime());
}
}
날짜와 시간 비교
날짜와 시간을 비교할 때는 Date 객체를 Calendar 객체로부터 얻어서 비교할 수 있다.
import java.util.Calendar;
import java.util.Date;
public class CalendarExample {
public static void main(String[] args) {
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
// 두 번째 캘린더를 1일 뒤로 설정
calendar2.add(Calendar.DAY_OF_MONTH, 1);
Date date1 = calendar1.getTime();
Date date2 = calendar2.getTime();
// 날짜 비교
if (date1.before(date2)) {
System.out.println("calendar1 날짜가 calendar2 날짜보다 이전입니다.");
} else if (date1.after(date2)) {
System.out.println("calendar1 날짜가 calendar2 날짜보다 이후입니다.");
} else {
System.out.println("두 날짜가 동일합니다.");
}
}
}
Calendar.MONTH는 0부터 시작하므로, 실제 월과는 차이가 있다. 예를 들어, 0은 1월, 1은 2월이다.
다만 Calendar 클래스는 java8때 java.time 패키지의 LocalDate, LocalTime, LocalDateTime 등의 클래스로 대체되었다.
java.time은 추후 다룰 예정이다.
'Java 문법정리 (Array부터)' 카테고리의 다른 글
Enum (0) | 2024.08.01 |
---|---|
Interface (0) | 2024.07.31 |
기본형 매개변수, 참조형 매개변수 (2) | 2024.07.23 |
return 문 (1) | 2024.07.23 |
클래스 설계 단계 (3) | 2024.07.23 |