날짜 / 시간과 관련된 정보를 제공해주는 클래스
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 + "초 입니다.");
}

: 배열 객체를 처리해주는 클래스
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");
}
