Test148 java.util패키지 - Calendar 클래스 (2)
2020. 9. 21. 16:30
※ 사용자로부터 연, 월을 입력받아 달력을 그려주는(출력하는) 프로그램을 구현한다.
단, 만년달력이 아니라 Calendar 클래스를 활용하여 작성할 수 있도록 한다.
(API Document 적극 참조~!!!)
실행 예)
연도 입력 : 0
연도 입력 : 2020
월 입력 : -2
월 입력 : 16
월 입력 : 8
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.Calendar; public class Test148 { public static void main(String[] args) throws IOException { //BufferedReader 클래스 기반 인스턴스 생성 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // Calendar 클래스 기반 인스턴스 생성 Calendar cal = Calendar.getInstance(); // 주요 변수 선언 int y,m; //-- 년, 월 int w; //-- 요일 int i; //-- 루프, 변수 do { System.out.print("연도 입력 : "); y = Integer.parseInt(br.readLine()); } while (y<1); do { System.out.print("월 입력 : "); m = Integer.parseInt(br.readLine()); } while (m < 1 || m > 12); // 사용자로부터 입력받은 연(y), 월(m)을 이용하여 // 달력 객체의 날짜 세팅 cal.set(y,m-1,1); //-- 월 구성 시 입력값(m)을 그대로 사용하는 것이 아니라 // 입력값에서 1을 뺀 값으로 월을 설정해야 한다. // 세팅된 달력 객체로부터 요일 가져오기 w = cal.get(Calendar.DAY_OF_WEEK); // 테스트(확인) //System.out.println(w); //--==>> 연도 입력 : 2020 // 월 입력 : 8 // 7 → 2020년 8월 기준 → 토요일 → 2020년 8월 1일 → 토요일 // Calendar 클래스의 『getActualMaximum()』 메소드 check~!!! // 테스트(확인) System.out.println(cal.getActualMaximum(Calendar.DATE)); //--==>> 31 // 결과 출력 → 달력 그리기 System.out.println(); System.out.println("\t[ " + y + "년 " + m + "월 ]\n"); System.out.println(" 일 월 화 수 목 금 토"); System.out.println("============================"); // 공백 발생 for (i = 1; i < w; i++) { System.out.print(" "); } // 테스트(확인) //System.out.printf("%4d",1); // Calendar 클래스의 『getActualMaximum()』 메소드 활용 for (i=1; i <= cal.getActualMaximum(Calendar.DATE); i++) { System.out.printf("%4d",i); w++; //-- 반복문을 수행하며 날짜가 증가할 때 마다 // 요일도 함께 증가해 나갈 수 있도록 처리 if (w%7==1) //-- 증가한 요일이 일요일이 될 때 마다... 개행 후 출력 System.out.println(); //-- 개행 } if(w%7!=1) System.out.println(); //-- 개행 System.out.println("============================="); } }
실행 결과
// 실행 결과 /* 연도 입력 : 2020 월 입력 : 2 29 [ 2020년 2월 ] 일 월 화 수 목 금 토 ============================ 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 ============================= 계속하려면 아무 키나 누르십시오 . . . */
'JAVA > 주요 패키지' 카테고리의 다른 글
Test150 java.lang패키지 - Math 클래스 (0) | 2020.09.21 |
---|---|
Test149 java.util패키지 - Calendar 클래스 (3) (0) | 2020.09.21 |
Test147 java.util패키지 - Calendar 클래스 (0) | 2020.09.21 |
Test146 캐릭터 셋(Character Set) (0) | 2020.09.21 |
Test145 java.util패키지 - StringTokenizer 클래스 (0) | 2020.09.14 |