본문 바로가기

국비교육/국비교육 복습

day16_api.util.calendar_Test03 : Calendar 클래스를 이용한 날짜 출력

(Q) 오늘 사귄 커플의 100일 기념일이 몇일인지 계산하여 출력

메인 메소드

package day16_api.util.calendar;

import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Test03 {

	public static void main(String[] args) {
		
		// Calendar의 현재 시간에 대한 인스턴스 생성
		Calendar calendar = Calendar.getInstance();

		// 표기 형식 설정
		Format f = new SimpleDateFormat("yyyy년 M월 dd일");
				
		// 현재 날짜 (확인용)
		Date now = calendar.getTime();
		System.out.println("현재 날짜 : " + f.format(now));
		
		// 현재 시간보다 100일 뒤를 세팅
		int year  = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH);
		int day = calendar.get(Calendar.DATE);
		calendar.set(year, month, day + 99);	// 오늘부터 100일 뒤면 오늘을 1일로 치고 계산한다
		
		// 100일 후 날짜
		Date setTime = calendar.getTime();
		System.out.println(f.format("100일 후 : " + setTime));
	}
}

 

- Calendar 자체를 출력하면 원하는 표기 형식의 시간을 얻을 수 없다

  1) Date로 변환 후 SimpleDateFormat으로 형식을 바꿔 출력

  2) Calendar의 .get(int field) 메소드로 개별 항목을 반환한 후 형식에 맞춰 출력

 

- Calendar에서 해당 달(month)의 date값이 초과되면 자동으로 다음달로 넘겨서 계산해 준다 (날짜 자동 계산)

 

- Calendar의 메소드 일부 (여기서 참조변수의 타입은 Calendar이다)

Calendar의 메소드 기능 반환형
참조변수명.get(Calendar.YEAR) 년도 반환 int
참조변수명.get(Calendar.MONTH) 월 반환 int
참조변수명.get(Calendar.DATE) 일 반환 int
참조변수명.getTime() Calendar 인스턴스를 Date 인스턴스로 반환 Date