https://docs.oracle.com/en/java/javase/11/docs/api/index.html
Overview (Java SE 11 & JDK 11 )
This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development Kit (JDK) AP
docs.oracle.com
api 보는 곳!
calendar 클래스는
jaca.base
java.util
Calendar
에 있습니다.
CalendarUseApi.java
package com.cal02;
import java.util.Calendar;
public class CalendarUseApi {
public void prn(int year, int month) {
Calendar cal = Calendar.getInstance();
System.out.printf("\t\t%d년 %d월\n",year, month);
System.out.printf("일\t월\t화\t수\t목\t금\t토\n");
cal.set(year, month - 1, 1);
int start = cal.get(Calendar.DAY_OF_WEEK);
for (int i = 1; i < start; i++) {
System.out.print("\t");
}
for (int i = 1; i <= cal.getActualMaximum(Calendar.DATE); i++) {
System.out.printf("%d\t", i);
if(start % 7 == 0) {
System.out.println();
}
start++;
}
}
}
MTest.java
package com.cal02;
import java.util.Scanner;
import com.cal01.DayOfCalendar;
public class MTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("연도 입력 : ");
int year = sc.nextInt();
System.out.print("월 입력 : ");
int month = sc.nextInt();
CalendarUseApi cal = new CalendarUseApi();
cal.prn(year,month);
}
}
위의 코드도 메소드가 모여있는 클래스인 CalendarUseApi클래스와 실행을 담당하는 MTest클래스로 나누어서 만들어 봤습니다. 그럼 코드를 하나씩 볼까요??
Calendar cal = Calendar.getInstance()
Calendar() API를 사용하기 위해 Calendar의 인스턴스를 cal에 담습니다.
System.out.printf("\t\t%d년 %d월\n",year, month);
System.out.printf("일\t월\t화\t수\t목\t금\t토\n");
달력이 예쁘게 출력되기 위해 달력 윗부분을 출력합니다.
cal.set(year, month - 1, 1);
시작 날짜를 설정합니다 -> month - 1 : Calendar는 0부터 시작하기 때문
int start = cal.get(Calendar.DAY_OF_WEEK);
일요일 : 1 , 월요일 : 2, 화요일 : 3, 수요일 : 4, 목요일 : 5, 금요일 : 6, 토요일 : 7
각 요일을 표현하는 숫자를 위와 같이 만듭니다.
for (int i = 1; i < start; i++) {
System.out.print("\t");
}
일요일이 1이기 때문에 1부터 시작하여 시작 요일 이전을 빈 공간으로 처리합니다.
for (int i = 1; i <= cal.getActualMaximum(Calendar.DATE); i++) {
System.out.printf("%d\t", i);
if(start % 7 == 0) {
System.out.println();
}
start++;
}
getActualMaximum는 현재 월의 가질 수 있는 최댓값을 나타내줍니다. 위의 코드는 달력을 출력시켜줍니다.
Scanner sc = new Scanner(System.in);
System.out.print("연도 입력 : ");
int year = sc.nextInt();
System.out.print("월 입력 : ");
int month = sc.nextInt();
CalendarUseApi cal = new CalendarUseApi();
cal.prn(year,month);
자 이제 메인메소드를 보면 연도와 월을 입력받고 CalendarUseApi 클래스의 prn메소드를 호출하네요. 이것도 2020년 12월을 입력해서 출력해볼까요?
api를 사용하지 않았을 때와 완벽하게 똑같이 출력이 됩니다!
'Java 관련 > Java' 카테고리의 다른 글
[Java] String() & StingBuffer() (0) | 2021.10.29 |
---|---|
[Java] String pool(스프링 풀) (0) | 2021.10.28 |
[Java] 달력(calendar) 만들기 (1) | 2021.10.26 |
[Java] 인터페이스(Interface) (0) | 2021.10.23 |
[Java] 메소드(method) (0) | 2021.10.22 |