簡単なカレンダー

1535 ワード

package com.sxt.test;

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

/**
 *  
 * @author Administrator
 *
 */
public class TestCalendar {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		System.out.print(" :");
		int year = in.nextInt();
		System.out.print(" :");
		int month = in.nextInt()- 1;
		in.close(); 
		if(year <= 0) {
			throw new IllegalArgumentException(" 0!");
		}
		if(month < 0 || month > 12) {
			throw new IllegalArgumentException(" , 1~12 !");
		}
		
		show(year, month);
	}	
	
	
	public static void show(int year, int month) {
		Calendar calendar = new GregorianCalendar();
		calendar.set(Calendar.YEAR, year);
		calendar.set(Calendar.MONDAY, month);
		calendar.set(Calendar.DATE, 1); // 
		
		int max = calendar.getActualMaximum(Calendar.DATE); // 
		
		String[] weeks = {" ", " ", " ", " ", " ", " ", " "};
		for (String string : weeks) {
			System.out.print(string + "\t");
			
		}
		System.out.println();
		
		int  num = calendar.get(Calendar.DAY_OF_WEEK); // 
		for(int j =1; j<num; j++) {
			System.out.print(" "+ "\t");
		}
		
		for(int i = 1; i <= max; i++) {
			calendar.set(Calendar.DATE, i);
			num = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 
			if(num == 6) {
				System.out.println(i + "\t");
			} else{	
				System.out.print(i + "\t");
			}
			
		}
	}
}