カレンダーの表示

1430 ワード



// 。

import java.util.*;

public class CalendarTest 

{

	public static void main(String[] args) 

	{

       //construct d as current date

		GregorianCalendar d=new GregorianCalendar();

		

		int today=d.get(Calendar.DAY_OF_MONTH);

		int month=d.get(Calendar.MONTH);

		

		//set d to start date of the month.

		d.set(Calendar.DAY_OF_MONTH,1);

		int weekday=d.get(Calendar.DAY_OF_WEEK);

		

		//print heading

		System.out.println("Sun Mon Tue Wed Thu Fri Sat");

		

		//indent first line of calendar

		for(int i=Calendar.SUNDAY;i<weekday;i++)

			System.out.print("    ");

		

		do{

			//print day

			int day=d.get(Calendar.DAY_OF_MONTH);

			System.out.printf("%3d",day); 

			

			//mark current day with *

			if(day==today)

				System.out.print("*");

			else

				System.out.print(" ");

			

			//start a new line after every Saturday

			if(weekday==Calendar.SATURDAY)

				System.out.println();

			

			//advance d to the next day

			d.add(Calendar.DAY_OF_MONTH,1);

			weekday=d.get(Calendar.DAY_OF_WEEK);

		}while(d.get(Calendar.MONTH)==month);

		//the loop exits when d is day 1 of the next month

		

		//print final end of line if necessary

		if(weekday!=Calendar.SUNDAY)

			System.out.println();

	}

}