/**
   @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 阅读(310) 
评论(0)  编辑  收藏  所属分类: 
阅读笔记