2015 IT 웹 기반 개발자과정/JAVA

JAVA Calendar 만들기 [API Calendar]

한여름밤의코딩 2015. 11. 12. 15:28
package src.kr.ac.jnu.day04.Calendar;

import java.util.Calendar;

public class CalendarUtil {

	public void showByYear(int year) {
		for (int month = 1; month <= 12; month++) {
			showByMonth(year, month);
		}
	}

	public void showByMonth(int year, int month) {
		Calendar c = Calendar.getInstance();

		c.set(year, month - 1, 1);

		// year/month/1이 무슨 요일>???
		// 1 : 일요일 ~~~ 7 : 토요일
		int week = c.get(Calendar.DAY_OF_WEEK);

		// year/month 의 마지막 날수
		int lastday = c.getActualMaximum(Calendar.DATE);
		System.out.println("<< " + year + "년 " + month + "월" + " >>");
		showByDay(week, lastday);

	}

	private void showByDay(int week, int lastday) {
		int lineCnt = 0;
		System.out.println("===================================================");
		System.out.println(" 일\t 월\t 화\t 수\t 목\t 금\t 토\t");
		// System.out.println("===================================================");
		for (int i = 1; i < week; i++) {
			System.out.print("\t");
			lineCnt++;
		}
		for (int day = 1; day <= lastday; day++) {
			System.out.printf("%2d\t", day);
			lineCnt++;
			if (lineCnt % 7 == 0 || day == lastday) {
				System.out.println();
			}
		}
		System.out.println("===================================================");
	}
}

=============================================================================================================================
package src.kr.ac.jnu.day04.Calendar;

import java.util.Scanner;

public class CalendarVw {
	
	private Scanner	sc = new Scanner(System.in);
	private CalendarUtil util = new CalendarUtil();
	
	
	private int getInput(String msg) {
		System.out.println(msg);
		return sc.nextInt();

	}

	public void process() {

		int year = 0 ;
		int month = 0;
		
		int command = getInput("항목을 선택하세요  (1. 특정년도 날짜보기   2. 특정월 날짜보기   3. 종료) : ");
		
		while (true) {
			switch (command) {
			case 1:
				year = getInput("년도를 입력하세요");
				util.showByYear(year);
				break;
			case 2:
				year = getInput("년도를 입력하세요 : ");
				month = getInput("월을 입력하세요 : ");
				util.showByMonth(year, month);
				break;
			case 3:
				System.out.println("프로그램을 종료합니다");
				System.exit(0); // 프로그램 정상 종료
				break;
			default:
				System.out.println("잘못 입력하셨습니다.");

			}
		}
	}
}

=============================================================================================================================
package src.kr.ac.jnu.day04.Calendar;
public class CalendarMain {
	public static void main(String[] args) {
		new CalendarVw().process();
		
	}
}