package test;
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("\t");
}
do
{
// print day
int day = d.get(Calendar.DAY_OF_MONTH);
if (day < 10) System.out.print(" ");
System.out.print(day);
// mark current day with *
if (day == today)
{
System.out.print("*\t");
}
else
{
System.out.print("\t");
}
//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();
}
}
}
打印效果:
Sun Mon Tue Wed Thu Fri Sat
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