본문 바로가기
java

Calendar 클래스

by 신방동불주먹 2022. 10. 11.

<  java.util .Calendar 클래스  >

 

 

- 자바에서 날짜, 시간 데이터를 쉽게 처리하도록 제공하는 추상 클래스로 다양한 필드와 메소드가 포함 되어있다.

 

- java.util.Calendar 를 import 하여 사용

- getInstance() 로 객체 생성(추상클래스 이므로 new로 인스턴스를 생성할 수 없다)

 

import java.util.Calendar;

public class CalendarTest {

	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();
     }
   }

 

- 주요 필드

 

1. YEAR : 년도 

2. MONTH : 월 (1월을 상수 0으로 대응, 실제 월을 구할 땐 +1

3. DATE, DAY_OF_MONTH : 월의 날짜

4. DAY_OF_WEEK : 일주일에 해당되는 요일(일요일 1부터 시작)

5. HOUR : 12시간 단위 시간

6. HOUR_OF_DAY : 24시간 단위 시간

7. MINUTE : 분

8. SECOND : 초 

 

- 주요 메소드

1. add() : 전달된 필드에서 일정 시간만큼을 더하거나 뺌

2. get() : 전달된 필드에 저장된 값을 반환

3. set() : 전달된 필드를 특정 값으로 설정

 

 

 

 

import java.util.Calendar;
import java.util.Scanner;

public class CalendarTest {// 1011 Calendar

	public static void main(String[] args) {
		/*
		 * Calendar c = Calendar.getInstance();//사용 방법 c.get(Calendar.YEAR);
		 * //static변수year - 반환값 int System.out.println(c.get(Calendar.YEAR));
		 * System.out.println(c.get(Calendar.MONTH)+1); //0-11 숫자값 0이 1월달
		 * System.out.println(c.get(Calendar.DATE));
		 * System.out.println(c.get(Calendar.HOUR));
		 * System.out.println(c.get(Calendar.MINUTE));
		 * System.out.println(c.get(Calendar.SECOND));
		 * System.out.println(c.get(Calendar.DAY_OF_WEEK)); //1.일요일
		 */

		// 달력출력

		Scanner sc = new Scanner(System.in);
		System.out.println("년 입력 : ");
		int year = sc.nextInt(); // 2022
		System.out.println("월 입력 : ");
		int month = sc.nextInt(); // 10

		int START_DAY_OF_WEEK = 0; // 시작하는 요일의 날짜를 알기 위해서
		int END_DAY = 0;

		Calendar sDay = Calendar.getInstance();
		Calendar eDay = Calendar.getInstance();

		sDay.set(year, month - 1, 1); // 시작하는 달의 1일 날짜로 초기화 202291
		eDay.set(year, month, 1); // 다음달 1일로 날짜 초기화2022101

		eDay.add(Calendar.DATE, -1); // 전 달의 마지막을 구함9월마지막날31일

		START_DAY_OF_WEEK = sDay.get(Calendar.DAY_OF_WEEK); // 7:토요일 //1일이 무슨요일인지
		END_DAY = eDay.get(Calendar.DATE);// 31

		System.out.println("     " + year + "년 " + month + "월");
		System.out.println(" SU MO TU WE TH FR SA ");

		for (int i = 1; i < START_DAY_OF_WEEK; i++) { //1일 전까지 공백으로 채우기
			System.out.print("   ");
		}

		for (int i = 1, n = START_DAY_OF_WEEK; i <= END_DAY; i++, n++) {
			System.out.print((i < 10 ? "  " + i : " " + i)); //한자리수 두자리수 칸 맞추기 
			if(n % 7 == 0) { //7의 배수마다 줄바꿈 
				System.out.println();
			}

	}

	}}

'java' 카테고리의 다른 글

Collection(List)  (0) 2022.10.11
래퍼 클래스(Wrapper class)  (0) 2022.10.11
String class  (0) 2022.10.07
UML(Unified Modeling Language)  (0) 2022.10.06
다형성(인터페이스)  (0) 2022.10.06