Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Everything has an expiration date

142 - Java 자바의 주요 클래스 : Calendar 클래스, Calendar.get(Calendar.YEAR) MONTH, DATE, DAY_OF_MONTH, getInstance(), Calendar.set(y, m, d) 본문

[Java]

142 - Java 자바의 주요 클래스 : Calendar 클래스, Calendar.get(Calendar.YEAR) MONTH, DATE, DAY_OF_MONTH, getInstance(), Calendar.set(y, m, d)

Jelly-fish 2023. 9. 19. 14:00
/*==============================================
  ■■■ 자바의 주요(중요) 클래스 ■■■
  - 자바에서 기본적으로 제공하는 주요 클래스들
  - Calendar 클래스 
================================================*/

/*

※ Calendar 클래스는 추상 클래스이기 때문에 객체를 생성할 수 없다.
   (추상 클래스 : 미완성된 클래스 → 상속을 위해 존재하는 클래스)

   Calendar ob = new Calendar();
   → 이와 같은 구문을 통해 인스턴스 생성 불가.


○ Calendar 클래스 객체(인스턴스)를 생성할 수 있는 방법

   1. Calendar ob1 = Calendar.getInstance(); 
      ▶ 『Calendar 인스턴스를 반환하는 getInstance() static 메소드로 Calendar 객체생성』
   
   2. Calendar ob2 = new GregorianCalendar();
      -------            ------------------  → 자식 클래스의 인스턴스    → 업 캐스팅!!!
        → 부모 클래스 참조 변수

	// GregorianCalendar gc = new GregorianCalendar();
	// Calendar ob2 = gc;
	// Calendar ob2 = (Calendar)gc;			
	  ▶ 『자식 클래스 GregorianCalendar의 업캐스팅으로 Calendar 객체생성』

   3. GregorianCalendar ob3 = new GregorianCalendar();
     (※ GregorianCalendar : Calendar 클래스의 하위 클래스)
	  ▶ 『자식 클래스의 인스턴스를 생성하면, 그 안에 부모 클래스의 인스턴스가 포함되어 있으므로』


*/

// 연, 월, 일, 요일을 Calendar 객체로부터 가져와 출력

import java.util.Calendar;
import java.util.GregorianCalendar;


public class Test142
{
	public static void main(String[] args)
	{
		// Calendar 객체 생성
		//Calendar ob = new Calendar(); 추상 클래스이므로 바로 인스턴스 생성 불가능하다.

		Calendar rightNow = Calendar.getInstance();

		// 생성된 달력(Calendar) 인스턴스를 통해
		// 날짜 관련 정보를 얻어낼 수 있는 메소드 → 『get()』


		// static final 변수 → YEAR
		int y = rightNow.get(Calendar.YEAR); // 연도를 반환해 준다.
		System.out.println("y : " + y);
		//--==>> y : 2023

		// 달은, 입력한 달보다 1이 작으므로 1 더해서 가져와야 한다.
		int m = rightNow.get(Calendar.MONTH) + 1;	//-- 『+1』 check~!!!
		System.out.println("m : " + m);
		//--==>> m : 9


		int d = rightNow.get(Calendar.DATE);
		System.out.println("d : " + d);
		//--==>> d : 19


		int w = rightNow.get(Calendar.DAY_OF_WEEK);
		System.out.println("w : " + w);
		//--==>> w : 3


		// 테스트(확인)
		/*
		System.out.println(Calendar.SUNDAY);		//--==>> 1 → 일요일
		System.out.println(Calendar.MONDAY);		//--==>> 2 → 월요일
		System.out.println(Calendar.TUESDAY);		//--==>> 3 → 화요일
		System.out.println(Calendar.WEDNESDAY);		//--==>> 4 → 수요일
		System.out.println(Calendar.THURSDAY);		//--==>> 5 → 목요일
		System.out.println(Calendar.FRIDAY);		//--==>> 6 → 금요일
		System.out.println(Calendar.SATURDAY);		//--==>> 7 → 토요일
		*/


		System.out.println(y + "-" + m + "-" + d + " " + w);
		//--==>> 2023-9-19 3

		String week = "";
		switch (w)
		{
			/*
			case Calendar.SUNDAY : week = "일요일"; break;
			case Calendar.MONDAY : week = "월요일"; break;
			case Calendar.TUESDAY : week = "화요일"; break;
			case Calendar.WEDNESDAY : week = "수요일"; break;
			case Calendar.THURSDAY : week = "목요일"; break;
			case Calendar.FRIDAY : week = "금요일"; break;
			case Calendar.SATURDAY : week = "토요일"; break;
			*/

			case 1 : week = "일요일"; break;
			case 2 : week = "월요일"; break;
			case 3 : week = "화요일"; break;
			case 4 : week = "수요일"; break;
			case 5 : week = "목요일"; break;
			case 6 : week = "금요일"; break;
			case 7 : week = "토요일"; break;

			
		}

		System.out.println(y + "-" + m + "-" + d + " " + week);
		//--==>> 2023-9-19 화요일


		System.out.println("///////////////////////////////////////////////////////////////////");

		// Calendar 객체 생성
		Calendar rightNow2 = new GregorianCalendar();

		String[] week2 = {"일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"};

		// 달력의 날짜 세팅 → 『set()』 메소드 활용
		rightNow2.set(2024, 2, 19);		// 2024년 3월 19일		// check~!!!

		System.out.println(rightNow2.get(Calendar.DAY_OF_WEEK));
		//--==>> 3

		// week2의 배열 = 0번 인덱스가 일요일이므로... 화요일 → 2번 인덱스.
		// 그렇기 때문에 요일을 가져온 값(rightNow2.get(Calendar.DAY_OF_WEEK))에서 -1 을 해 주는것.

		System.out.println(week2[rightNow2.get(Calendar.DAY_OF_WEEK)-1]);
		//--==>> 화요일

		



	}
}