본문 바로가기
java/개념

Calendar 클래스

by unhyepnhj 2024. 6. 7.

Calendar 클래스

- java.util 패키지의 추상클래스

- 시간과 날짜 정보 관리

Calendar 클래스의 get(), set()에 사용되는 static 상수

 

Calendar 객체 생성 - 현재 날짜와 시간

Calendar now = Calendar.getInstance();

- Calendar 클래스는 추상 클래스이므로 new Calendar() 사용하지 않고 getInstance() 메소드 사용

 

날짜와 시간 알아내기

int year = new.get(Calendar.YEAR);	//현재 연도
int month = now.get(Calendar.MONTH)+1;	//현재 달

- 날짜와 시간을 알아내기 위해 get() 메소드에 필드 사용(위의 표 참고)
- get(Calendar.MONTH)는 n월달일 때 n-1을 리턴하므로 1을 더함

 

날짜와 시간 설정하기

Calendar firstDate = Calendar.getInstance();
firstDate.clear();		//현재 날짜와 시간 정보 삭제
firstDate.set(2016, 11, 25);	//2016년 12월 15일로 설정(12월은 11)
firstDate.set(Calendar.HOUR_OF_DAY, 20);	//저녁 8시로 설정
firstDate.set(Calendar.MINIUTE, 30);		//30분으로 설정

- Calendar 객체에 날짜와 시간을 저장한다고 컴퓨터의 날짜와 시간을 바꾸지는 않음


예제 6-11 Calendar를 활용하여 현재 날짜와 시간을 알아내고 개발자가 저장하고자 하는 날짜와 시간 기억

import java.util.Calendar;

public class CalendarEx {
	public static void printCalendar(String msg, Calendar cal) {
		int year=cal.get(Calendar.YEAR);
		int month=cal.get(Calendar.MONTH)+1;
		int day=cal.get(Calendar.DAY_OF_MONTH);
		int dayOfWeek=cal.get(Calendar.DAY_OF_WEEK);
		int hour=cal.get(Calendar.HOUR);
		int hourOfDay=cal.get(Calendar.HOUR_OF_DAY);
		int ampm=cal.get(Calendar.AM_PM);
		int minute=cal.get(Calendar.MINUTE);
		int second=cal.get(Calendar.SECOND);
		int millisecond=cal.get(Calendar.MILLISECOND);
		System.out.print(msg+year+"/"+month+"/"+day+"/");
		
		switch(dayOfWeek) {
			case Calendar.SUNDAY:
				System.out.print("일요일");
				break;
			case Calendar.MONDAY:
				System.out.print("월요일");
				break;
			case Calendar.TUESDAY:
				System.out.print("화요일");
				break;
			case Calendar.WEDNESDAY:
				System.out.print("수요일");
				break;
			case Calendar.THURSDAY:
				System.out.print("목요일");
				break;
			case Calendar.FRIDAY:
				System.out.print("금요일");
				break;
			case Calendar.SATURDAY:
				System.out.print("토요일");
				break;
		}
		
		if(ampm==Calendar.AM) System.out.print(" 오전 ");
		else System.out.print(" 오후 ");
		System.out.print(hour+"시");
		System.out.print("("+hourOfDay+"시)");
		System.out.print(" "+minute+"분");
		System.out.print(" "+second+"초");
		System.out.println(" "+millisecond+"밀리초 ");		
	}
	
	public static void main(String[] args) {
		Calendar now=Calendar.getInstance();
		printCalendar("현재 ", now);
		
		Calendar firstDate=Calendar.getInstance();
		firstDate.clear();
		firstDate.set(2016, 11, 25);	//11월로 저장했으므로 12월
		
		firstDate.set(Calendar.HOUR_OF_DAY, 20);	//20시
		firstDate.set(Calendar.MINUTE, 30);		//30분
		printCalendar("처음 데이트한 날은 ", firstDate);
	}
}

 

'java > 개념' 카테고리의 다른 글

Vector<E>  (0) 2024.06.08
컬렉션과 제네릭  (0) 2024.06.08
Math 클래스  (0) 2024.06.07
StringTokenizer 클래스  (0) 2024.06.07
StringBuffer 클래스  (0) 2024.06.07