JAVA 9강_1_Util 패키지의 주요 클래스(Calendar, Arrays)

열라뽕따히·2024년 2월 21일

JAVA

목록 보기
54/79

3. Calendar 클래스

  • 날짜 / 시간과 관련된 정보를 제공해주는 클래스

  • Calendar 클래스는 추상클래스

  • 추상클래스로 작성한 이유 : 날짜와 시간을 계산하는 방법이 나라, 지역마다 다르기 때문

  • Calendar 클래스는 날짜와 시간을 계산하는데 꼭 필요한 메서드나 상수로 구성 되어 있음

  • Calendar 클래스를 객체 생성 하려면 Calendar 클래스가 가지고 있는 클래스(정적) 메서드인 getInstance() 메서드를 사용해야 함

  • getInstance() 메서드를 호출하면 내부적으로 java.util.GregorianClanedar 클래스의 객체를 생성하여 반환해줌

  • GregorianCalendar 클래스는 Calendar 클래스의 자식 클래스임

  • getInstance() : 싱글턴 방식. 메모리를 효율적으로 사용할 수 있음 하나의 인스턴스만을 가지고 공유해서 사용하고자 할 때 사용하는 방식



<예시>


=============================코드=============================
// Calendar 클래스 객체 생성하는 방법
		Calendar cal = Calendar.getInstance();
		
		// 날짜와 관련된 정보를 확인해보자
		int year = cal.get(Calendar.YEAR);        // 현재 년도 (YEAR은 상수)
		
		int month = cal.get(Calendar.MONTH) + 1;  // 현재 월 (MONTH는 상수 / 0이 1월이기 때문에 +1이 필요)
		
		int day = cal.get(Calendar.DAY_OF_MONTH);
		
		// 1년 52주 중에 오늘은 몇번째 주인지 확인해보자
		int week = cal.get(Calendar.WEEK_OF_YEAR);
		
		System.out.println("현재 년도 >>> " + year + "년");
		System.out.println("현재 월 >>> " + month + "월");
		System.out.println("현재 일 >>> " + day + "일");
		System.out.println("현재 주는 52주 중에 >>> " + week + "주 입니다.");
		System.out.println();
		
		// 시간과 관련된 정보를 확인해보자
		// 1. 12시간제를 이용하는 방법 ==> 오전(0), 오후(1)
		int am_pm = cal.get(Calendar.AM_PM);
		int hour = cal.get(Calendar.HOUR);      // 현재 시간
		int minute = cal.get(Calendar.MINUTE);  // 현재 분
		int second = cal.get(Calendar.SECOND);  // 현재 초
		
		if(am_pm == 0) {
			// 오전인 경우
			System.out.println("현재 시간은 오전 " + hour + "시 " + minute + "분 " + second + "초 입니다.");
		}else {
			// 오후인 경우
			System.out.println("현재 시간은 오후 " + hour + "시 " + minute + "분 " + second + "초 입니다.");
		}
		System.out.println();
		
		// 2. 24시간제를 이용하는 방법
		int hours = cal.get(Calendar.HOUR_OF_DAY);
		
		// 오후일 경우 2시 => 14시
		System.out.println("현재 시간은" + hours + "시 " + minute + "분 " + second + "초 입니다.");

	}

=============================실행=============================





4. Arrays 클래스

: 배열 객체를 처리해주는 클래스

  • fill( ) : 배열의 요소를 특정한 값(데이터)으로 채우는 메서드

  • equals(객체, 객체) : 두 객체의 내용(데이터)이 같은지 다른지를 비교하는 메서드

  • sort( ) : 배열의 원소(데이터)를 정렬(오름차순) 해주는 메서드



=============================코드=============================

String[] str = {"홍길동", "세종대왕", "유관순"};
		
		for(String s : str) {
			System.out.println("str 배열 요소 >>> " + s);
		}
		
		System.out.println();
		
		// 1. fill() : 배열의 요소를 특정한 값(데이터)으로 채우는 메서드
		Arrays.fill(str, "김유신");
		
		for(String s : str) {
			System.out.println("str 배열 요소 >>> " + s);
		}
		
		System.out.println();
		
		// 2. equals(객체, 객체)  ==> 배열
		// 두 객체의 내용(데이터)이 같은지 다른지를 비교하는 메서드
		// ==> 반환타입은 boolean 타입
		String[] str1 = {"김유신", "김유신", "김유신"};
		
		if(Arrays.equals(str, str1)) {
			System.out.println("두 객체의 내용(데이터)은 같습니다.");
		}else {
			System.out.println("두 객체의 내용(데이터)은 다릅니다.");
		}
		
		System.out.println();
		
		// 3. sort() : 배열의 원소(데이터)를 정렬(오름차순)해주는 메서드
		int[] arr = {54, 66, 13, 97, 41};
		Arrays.sort(arr);
		
		for(int k : arr) {
			System.out.print(k + "\t");
		}
		
		// 내림차순 정렬
		for(int i = 0; i < arr.length; i++) {
			System.out.println(arr[i] + "\t");
		}

=============================실행=============================

0개의 댓글