Calendar日历类和GregorianCalendar公历类用法的一个小结

来源:互联网 发布:阿里云免费ecs 编辑:程序博客网 时间:2024/05/12 12:36

转自 http://blog.csdn.net/liuhenghui5201/article/details/8273259


日历类 主要涉及两个类,一个就是抽象类 Calendar类,另一个是他的子类GregorianCalendar。

一、Calendar类。

1,主要字段:

YEAR(年份)                                            MONTH(月份从0开始)                          DATE(一月的某天)                                    HOUR(指示上午或下午的小时)                                

HOUR_F_DAY(指示一天中的小时。)         DAY_OF_WEEK (一个星期中的某天)   DAY_OF_MONTH(一个月中的某天)    DAY_OF_YEAR(一年中的某天)     

 DAY_OF_WEEK _IN_MONTH(一个月中的第几个星期)                      WEEK_OF_MONTH  (指示当前月中的星期数)            WEEK_OF_YEAR(指示当前年中的星期数)

2,得Calendar类对象。

//通过 Calendar类的静态方法getInstance获得。

Calendar  ca = Calendar.getInstance();

3,主要方法

void set(int field,int value)//field日历类的参数,比如YEAR   MONTH   DATE 等...

void set(int year,int month,int date)//设置年月日。

void set(int year, int month, int date, int hourOfDay, int minute)//设置年月日时分

void set(int year, int month, int date, int hourOfDay, int minute, int second)//设置年月日时分秒

void setTime(Date date);//使用给定的 Date 设置此 Calendar 的时间。

 

int  get(int field)//返回给定日历字段的值。如:int month = acobj.get(Calendar.MONTH);

Date getTime()//返回一个表示此 Calendar 时间值的Date 对象。

long getTimeInMillis()//返回从1970.1.1   00:00:00到该日历的毫秒数。

 

void add(int field,amont);//根据日历的规则,为给定的日历字段添加或减去指定的时间量。可加减。如:caobj.add(Calendar.MONTH,1)下一个月。

二、GregorianCalendar类。

1,获得该类对象

Calendar ca = new GregorianCalendar()//默认当前的时刻。

Calendar ca = new GregorianCanlendar(int year,int month,int dayOfMonth)//初始具有指定年月日的公历类对象。

Calendar ca = new GregorianCanlendar(int year,int month,int dayOfMonth,int hourOfDay,int minute)初始具有指定年月日的公历类对象。

Calendar ca = new GregorianCanlendar(int year,int month,int dayOfMonth,int hourOfDay,int minute,int second)//初始具有指定年月日的公历类对象。

上边的都是获得默认的语言环境,和默认的时区 对象。

2,用法

用法主要继承去父类Calendar。

附一演示程序:

[java] view plain copy
  1. package Calendar;  
  2.   
  3. import java.util.Calendar;  
  4. import java.util.GregorianCalendar;  
  5.   
  6. public class CalendarDemo {  
  7.   
  8.     /** 
  9.      * @param args 
  10.      */  
  11.     public static void main(String[] args) {  
  12.         //获得一个日历对象  
  13.         Calendar ca = Calendar.getInstance();  
  14. //      ca.setFirstDayOfWeek(Calendar.SATURDAY);  
  15.         disPlay(ca);  
  16.           
  17.           
  18.           
  19.         //创建日历对象时间为2012.12.12.12,12,12  
  20.         Calendar c2 = new GregorianCalendar(20121112121212);  
  21.         disPlay(ca);  
  22.           
  23.           
  24.         //根据在年中的天数,求相隔天数。  
  25.         int days = c2.get(Calendar.DAY_OF_YEAR)-ca.get(Calendar.DAY_OF_YEAR);  
  26.         System.out.println("相差"+days+"天");  
  27.           
  28.           
  29.         //重新设定c2对象的时间  
  30.         System.out.println("+++++++++++++++++重新设定后时间++++++++++++:");  
  31.         c2.set(2012,11,23);//月份和日期都是0开头。月份中0表示一月。月中的日期,0表示一日。  
  32.         c2.set(Calendar.HOUR, 22);  
  33.         c2.set(Calendar.MINUTE,12);  
  34.         c2.set(Calendar.SECOND, 12);  
  35.         disPlay(c2);  
  36.           
  37.           
  38.         System.out.println("+++++++++++++++++修改后时间++++++++++++:");  
  39.         //向后延长29天  
  40.         ca.add(Calendar.DAY_OF_YEAR,29);  
  41.         disPlay(ca);  
  42.         //再延长10小时  
  43.         ca.add(Calendar.HOUR, 4);  
  44.         disPlay(ca);  
  45.   
  46.     }  
  47.   
  48.     public static void disPlay(Calendar ca) {  
  49.         String []mon = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};    
  50.         String []week = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};  
  51.         System.out.print(ca.get(Calendar.YEAR)+"年");  
  52.         System.out.print(mon[ca.get(Calendar.MONTH)]);  
  53.         System.out.print(ca.get(Calendar.DAY_OF_MONTH)+"日");  
  54.         System.out.println(week[ca.get(Calendar.DAY_OF_WEEK)]);  
  55.         System.out.print("时间:");  
  56.         System.out.print(ca.get(Calendar.HOUR_OF_DAY)+":");  
  57.         System.out.print(ca.get(Calendar.MINUTE)+":");  
  58.         System.out.println(ca.get(Calendar.SECOND));  
  59.           
  60.           
  61.     }  
  62.   
  63. }  
[java] view plain copy
  1. 运行结果:  
[java] view plain copy
  1. 2012年十二月8日星期六  
  2. 时间:20:42:38  
  3. 2012年十二月8日星期六  
  4. 时间:20:42:38  
  5. 相差4天  
  6. +++++++++++++++++重新设定后时间++++++++++++:  
  7. 2012年十二月24日星期一  
  8. 时间:10:12:12  
  9. +++++++++++++++++修改后时间++++++++++++:  
  10. 2013年一月6日星期日  
  11. 时间:20:42:38  
  12. 2013年一月7日星期一  
  13. 时间:0:42:38  

另参见一个日历练习。http://blog.csdn.net/liuhenghui5201/article/details/8273411

原创粉丝点击