/**
@version 1.30 2000-03-27
@author Cay Horstmann
*/
import java.util.*;
public class CalendarTest
{
public static void main(String[] args)
{
// 首先构造一个日历对象,把它初始化为当前的日期和时间.
GregorianCalendar d = new GregorianCalendar();
int today = d.get(Calendar.DAY_OF_MONTH);//得到当前的日期
int month = d.get(Calendar.MONTH);//得到当前的月份
d.set(Calendar.DAY_OF_MONTH, 1); // 设置d为当前的这个月的第一天
int weekday = d.get(Calendar.DAY_OF_WEEK); //得到这一天是星期几,如果是星期天的话,weekday被设置为1,依次类推
System.out.println("Sun Mon Tue Wed Thu Fri Sat"); // 打印标题头和空格作为第一行
for (int i = Calendar.SUNDAY; i < weekday; i++ )//找到第一天对应的星期几的位置
System.out.print(" ");
do
{
int day = d.get(Calendar.DAY_OF_MONTH);//因为前面设置了d为当前月的第一天,所以第一次循环中day为1
if (day < 10) System.out.print(" ");//如果天小于10,就打印一个空格,然后打印天。
System.out.print(day);
if (day == today)//如果这天是当然就在后面打印个*
System.out.print("* ");
else
System.out.print(" ");
if (weekday == Calendar.SATURDAY)// 如果是星期6就在后面进行换行
System.out.println();
d.add(Calendar.DAY_OF_MONTH, 1);// 然后,我们让d指向下一天
weekday = d.get(Calendar.DAY_OF_WEEK);//上一句代码设置了为下一天的日期,所以这个weekday为下一天的星期几
}
while (d.get(Calendar.MONTH) == month);//如果d在当月中就保持循环
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
posted on 2006-11-10 17:30
matthew 阅读(275)
评论(0) 编辑 收藏 所属分类:
阅读笔记