note

Calendar 클래스로 달력 만들기 본문

자바/중요 클래스들

Calendar 클래스로 달력 만들기

투한 2011. 12. 28. 10:43
package com.datetest;//입력받은 데이터로 달력 출력

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

public class CalendarMain {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		//데이터 입력부분
		System.out.println("희망 년도와 월을 입력하시게나  (ex년도 : 2009,월 : 3)");
		System.out.print("년도 : ");
		int year = sc.nextInt();
		System.out.print("월: ");
		int month = sc.nextInt();

		System.out.println("    [ "+year+"년 "+month+"월"+" ] ");
		System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-");
		System.out.println("    일     월     화     수    목    금    토");

		//Calendar 객체 생성 (오늘의 대한 정보)
		Calendar cal = Calendar.getInstance();
		//희망 연도, 월, 일 셋팅
		//월의 범위는 0~11 이기 때문에 실제월 -1
		//일은 달력이 1일부터 시작하기 때문에 1일로 셋팅
		//요일 구하기(월의 첫날)
		cal.set(year, month-1,1);

		//달의 마지막 날짜를 구함 
		int lastOfDate = cal.getActualMaximum(Calendar.DATE);
		//주를  구함 1일요일 ,2월요일
		int week = cal.get(Calendar.DAY_OF_WEEK);

		//1일이 해당 요일에 위치하도록 공백을 만들어 밀어주는 역할
		//실제 달력이
		for(int i = 1;i < week ; i++)
			System.out.print("   ");
		for(int i =1;i<=lastOfDate;i++){
			//달력 정렬을 위해 1~9까지는 공백이3칸 10부터는 2칸 공백 넣기
			System.out.print((i<10)?"  "+i : " "+i);
			//토요일에 날짜를 표시하고 줄바꿈 하는 코드
			if(week%7==0)System.out.println();
			week++;
		}
		System.out.println("\n=-=-=-=-=-=-=-=-=-=-=-=-");
	}
}

희망 년도와 월을 입력하시게나  (ex년도 : 2009,월 : 3)
년도 : 2011
월: 12
    [ 2011년 12월 ] 
=-=-=-=-=-=-=-=-=-=-=-=-
    일     월     화     수    목    금    토
              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 30 31

=-=-=-=-=-=-=-=-=-=-=-=-


'자바 > 중요 클래스들' 카테고리의 다른 글

Iterator 인터페이스 사용  (0) 2011.12.28
ArrayList클래스 사용  (0) 2011.12.28
Calendar 클래스 사용  (0) 2011.12.27
SimpleDateFormat 클래스 사용법  (0) 2011.12.27
난수를 사용할때  (0) 2011.12.27