7.3.3 测试日历的类GregorianCalendar

在对Date类的介绍中,读者会发现Date类所表示的是一个时间点,也就是在创建对象当时的时间点,而这对于进行日期的相关操作及运算,是非常不方便的。为此,前辈们在Java类库中,为开发者提供了一个方便操作日期的类:GregorianCalendar类。其实GregorianCalendar类是Calendar类的一个扩展而已,Calendar类是从总体上描述历法的类。

Date类中也有用于得到日期的方法函数,如“getDay()”、“getMonth()”等,但是这些方法已经不被推荐使用了,在程序中尽量不要使用不被推荐(deprecated)的方法函数。相比之下,GregorianCalendar类拥有更多的对日期操作的方法函数。GregorianCalendar类的常用方法:


public int get(int field)


这里的“field”指的Calendar类中定义的常数,返回与“field”相关的日期。

【实例7.5】举个具体的例子:


01 import java.util.*;

02 public class GregorianCalendars

03 {

04 public static void main(String[]args)

05 {

06 GregorianCalendar gc=new GregorianCalendar();

07 int X=gc.get(Calendar.MONTH);

08 System.out.println(X);

09 }

10 }


【代码说明】第7行通过get()方法返回月份。Calendar.MONTH返回日历中的当前月。【运行结果】


7 "public void set(int field, int value)"


将“field”所表示的日期替换成“value”的值。

【实例7.6】举个具体的例子:


01 import java.util.*;

02 public class GregorianCalendar1

03 {

04 public static void main(String[]args)

05 {

06 GregorianCalendar gc=new GregorianCalendar();

07 gc.set(Calendar.YEAR,2009);

08 System.out.println(gc.get(Calendar.YEAR));

09 }

10 }


【代码说明】第7行设置年份为2009,然后第8行输出当前年份。

【运行结果】


2009


下面是有一些有关如何设置系统时间的方法。


"public final void set(int year, int month, int date)"

"public final void set(int year, int month, int date, int hour, int minute)"

"public final void set(int year, int month, int date, int hour, int minute, int second)"


这里的“final”在后面一章会讲述。上面的三个方法函数是指如何设定时间和日期。

【实例7.7】看下列代码段,就可以明白以上这三个方法函数是什么含义:


01 import java.util.*;

02 public class GregorianCalendar2

03 {

04 public static void main(String[]args)

05 {

06 GregorianCalendar gc=new GregorianCalendar();

07 gc.set(2009,06,18);

08 System.out.println(gc.get(Calendar.YEAR));

09 System.out.println(gc.get(Calendar.MONTH));

10 System.out.println(gc.get(Calendar.DATE));

11 }

12 }


【代码说明】在上面的例子里,先通过“set”方法设置年份为2009年,然后设置月份为6月,接着设置日期是18号,最后再通过“get”访问器的方法取出值。

【运行结果】


2009 6

18