Java_Calendar

来源:互联网 发布:淘宝推广方法大全 编辑:程序博客网 时间:2024/04/28 12:41

Calendar类就相当于一张日历,这张日历上有一个一个的Date,你可以想象有一个指针指向这张日历上的某个Date。


我们可以用Calendar calendar = Calendar.getInstance();方法得到一个Calendar对象,得到的Calendar对象默认是当天的Date。

下面的代码讲解了各种取得日期,时间,星期的方法:

// 得到Calendar实例对象Calendar calendar = Calendar.getInstance();// 目前的日期+时间+星期System.out.println("Current Date:" + calendar.getTime());// 本年System.out.println("Current Year:" + calendar.get(Calendar.YEAR) + "年");// 本月(注意月份是从0开始的,所以要+1)System.out.println("Current Month:" + (calendar.get(Calendar.MONTH) + 1) + "月");// 本日System.out.println("Current Day Of Month:" + calendar.get(Calendar.DAY_OF_MONTH) + "日");System.out.println("Current Day Of Month:" + calendar.get(Calendar.DATE) + "日");// 本日在本周中的Index(周日是每个星期的第一天,周日~周六 对应着 1~7)final String[] ARRAY_WEEKS = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);System.out.println("Current Week:" + ARRAY_WEEKS[dayOfWeek - 1]);// 本周在本月中的Index(即本月中的第几周)System.out.println("Current Day Of Week In Month:本月第" + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH) + "周");// 本日在本年中的Index(即本年中的第几天)System.out.println("Current Day Of Year:本年第" + calendar.get(Calendar.DAY_OF_YEAR) + "日");
运行结果如下:

Current Date:Thu May 03 21:07:02 CST 2012Current Year:2012年Current Month:5月Current Day Of Month:3日Current Week:星期四Current Day Of Week In Month:本月第1周Current Day Of Year:本年第124日

指针默认是指向当天的Date的,那么怎么移动指针到其他的Date呢?

  1. setTime(Date date)
  2. set(int year, int month, int date)
  3. set(int year, int month, int date, int hourOfDay, int minute)
  4. set(int year, int month, int date, int hourOfDay, int minute, int second)
  5. set(int field, int value)
  6. add(int field, int amount)

第1、2、3、4种方法不解释

第5种方法:根据field决定设值方法,请看如下代码

// 设置Calendar的Date为本月第一天calendar.set(Calendar.DATE, 1);System.out.println("本月第一天的Date:" + calendar.getTime());// 设置Calendar的Date为本月第一天calendar.set(Calendar.DAY_OF_MONTH, 1);System.out.println("本月第一天的Date:" + calendar.getTime());// 设置Calendar的Date为本周第一天calendar.set(Calendar.DAY_OF_WEEK, 1);System.out.println("本周第一天的Date:" + calendar.getTime());
运行结果如下:

本月第一天的Date:Tue May 01 21:53:09 CST 2012本月第一天的Date:Tue May 01 21:53:09 CST 2012本周第一天的Date:Sun Apr 29 21:53:09 CST 2012

第六种方法:在本Date的基础上增加或减少(可以增加减少年,月,日,周,时,分,秒)

// 增加一天calendar.add(Calendar.DATE, 1);System.out.println("增加一天:" + calendar.getTime());// 减少一天calendar.add(Calendar.DATE, -1);System.out.println("减少一天:" + calendar.getTime());// 增加一小时calendar.add(Calendar.HOUR, 1);System.out.println("增加一小时:" + calendar.getTime());


想得到今年有多少天,多少周,本月有多少天,多少周怎么办呢?

System.out.println("今年有:" + calendar.getActualMaximum(Calendar.DAY_OF_YEAR) + "天,"+ calendar.getActualMaximum(Calendar.WEEK_OF_YEAR) + "周");System.out.println("本月有:" + calendar.getActualMaximum(Calendar.DAY_OF_MONTH) + "天,"+ calendar.getActualMaximum(Calendar.WEEK_OF_MONTH) + "周");
运行结果如下:

今年有:366天,52周本月有:31天,5周





原创粉丝点击