본문 바로가기
2015 IT 웹 기반 개발자과정/JAVA

JAVA 달력만들기 [이전달, 현재달, 다음달]

by 한여름밤의코딩 2015. 11. 12.
package src.kr.ac.jnu.day04.CalendarHomework;

public class CalendarMain {
	public static void main(String[] args) {
		new CalendarVw().start();
	}
}


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

import java.util.Scanner;

public class CalendarVw {
	private Scanner sc = new Scanner(System.in);
	private CalendarUtil u = new CalendarUtil();

	private int getMsg(String msg) {
		System.out.println(msg);
		return sc.nextInt();
	}

	public void start() {

		while (true) {
			int command = getMsg("항목을 선택하세요 \n 1. 현재 달 보기    2. 지난 달 보기    3. 다음 달 보기    4. 종료 :");

			switch (command) {
			case 1:
				u.getNow(0); 
				break;
			case 2:
				u.getNow(-1);  //이전 달
				break;
			case 3:
				u.getNow(1); // 다음 달
				break;
			case 4:
				System.out.println("종료합니다.");
				System.exit(0);
				break;
			default:
				System.out.println("잘못 입력하셨습니다.");
				break;
			}

		}

	}
}
=============================================================================
package src.kr.ac.jnu.day04.CalendarHomework;

import java.util.Calendar;
import java.util.Date;

public class CalendarUtil {

	public void getNow(int a) {
		Calendar c = Calendar.getInstance();

		int year = c.get(Calendar.YEAR);	//현재 년 구하기
		int month = c.get(Calendar.MONTH) + 1 + a;	//현재 달 구하기
		c.set(year, month - 1, 1);
		int week = c.get(Calendar.DAY_OF_WEEK);
		int lastDay = c.getActualMaximum(Calendar.DATE);
		
		System.out.println("<< "+year + " 년 " + month + " 월"+" >>");
		System.out.println("===================================================");
		System.out.println(" 일\t 월\t 화\t 수\t 목\t 금\t 토\t");
		show(week, lastDay);
	}

	private void show(int week, int lastDay) {
		int Cnt = 0;

		for (int i = 1; i < week; i++) {
			System.out.print("\t");
			Cnt++;
		}
		for (int i = 1; i <= lastDay + 1; i++) {
			System.out.printf("%2d\t", i);
			Cnt++;
			if (Cnt % 7 == 0)
				System.out.println();
		}
		System.out.println();
		System.out.println("===================================================");
	}

}