백_곰 2022. 1. 3. 17:41

1. Calendar와 GregorianCalendar

- Calendar추상클래스이기 때문에 직접 객체 생성이 안되고, 메서드를 통해 구현된 클래스의 인스턴스를

 얻는다.

(예): Calendar cal = Calendar.getInstance()

 

- GregorianCalendar는 태국을 제외한 나라들이 쓰는 클래스이다.

 

 

- 생성자를 구현하는 방식은 아래의 두 가지가 있다.

(1) Calendar cal = Calendar.getInstance()

(2) Calendar cal = new GregorianCalendar()

 

( 그러나 만일 (2)를 사용하는 도중 갑자기 새로운 Calendar 방식을 사용하거나 다른 인스턴스를 필요하다면, (2)를 쓴 해당 클래스를 다시 고쳐야 한다. )

( 그러나 (1) 사용 시, 변경할 필요가 없다. )

 

 

 

 

2. Date와 Calendar간의 변환

- Calendar가 등장하게 되면서 Date는 'deprecated' 되었다.

 

 

- 그러나 Date를 필요로 할 수 있으므로, 아래의 코드를 보자.

(1) Calendar -> Date

 

(2) Date -> Calendar

 

 

 

 

3. Calendar를 이해하기 위한 예제(1)

: 기본적으로 현재 날짜, 시간을 받아오는 예제이다.

 

( Calendar.MONTH는 0(1월) ~ 11(12월)을 반환한다. )

( Calendar.DAY_OF_WEEK는 1(일) ~ 7(토)을 반환한다. )

 

 

 

 

 

4. Calendar를 이해하기 위한 예제(2)

: 두 객체의 날짜를 설정하고 비교하는 예제이다.

 

 

 

 

 

5. Calendar를 이해하기 위한 예제(3)

: Calendar의 메서드를 이용해서 날짜를 수정하는 예제이다.

 

( roll은 add와 달리 자신이 지정한 필드 값만 바뀌고 다른 필드 값에 영향을 주지 않는 차이점이 있다. )

( 그러나, 예외가 존재하는데, 일 필드가 말일(end of month)일 때, month 필드 값을 건드리게 되면 date 필드 값에

영향을 줄 수 있다.

(예): 1월 31일(1달 후) -> 2월 28일

 

 

 

 

6. Calendar를 이해하기 위한 예제(4)

: 해당 년도와 월을 입력하게 되면 달력이 나오게 하는 예제이다.

 

 

 

 

 

7. Calendar를 이해하기 위한 예제(5)

: 예제(5)에서 수정 및 추가한 달력 예제이다.

 

 

 

 

 

8. Calendar를 이해하기 위한 예제(6)

: 다양한 인자값을 이용하여 날짜를 변환하는 예제이다.