随笔 - 251  文章 - 504  trackbacks - 0
<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

本博客系个人收集材料及学习记录之用,各类“大侠”勿扰!

留言簿(14)

随笔分类

收藏夹

My Favorite Web Sites

名Bloger

非著名Bloger

搜索

  •  

积分与排名

  • 积分 - 200393
  • 排名 - 285

最新评论

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

只有注册用户登录后才能发表评论。


网站导航: