Calendar日历类

来源:互联网 发布:网络投票大赛 编辑:程序博客网 时间:2024/06/05 14:43
Calendar日历类Calendar日历类和GregorianCalendar公历类

Calendar日历类和GregorianCalendar公历类 

相应的API文档:Calendar类和GregorianCalendar类

人们对于时间的认识是:某年某月某日,这样的日期概念。计算机中时间是用long类型表示的。两者之间通过Calendar搭起桥梁。

Calendar类和GregorianCalendar类的关系:

java.lang.Object  继承者 java.util.Calendar
java.lang.Object  继承者 java.util.Calendar      继承者 java.util.GregorianCalendarGergorianCalendar类是Calendar(Calendar是一个抽象类)的一个实现类,提供了世界上大多数国家/地区使用的标准日历系统。注意: - 月份:一月是0,二月是1,以此类推,12月是11

 - 星期:周日是1,周一是2,......周六是7

接下来讲解Calendar类和GregorianCalendar类的常用方法
一、Calendar类
1.静态方法getInstance()Calendar类的静态方法getInstance()可以初始化一个日历对象:Calendar now = Calendar.getInstance();
2.set()方法:使用下面三个方法把日历定到任何一个时间:  set(int year ,int month,int date)  
set(int year ,int month,int date,int hour,int minute)  
set(int year ,int month,int date,int hour,int minute,int second) 

3.获取年份、月份、小时等信息可以使用方法:  get(Calendar.Month);这样的方法 0表示一月,1表示二月  get(Calendar.DAY_OF_MONTH)获得这个月的第几天  get(Calendar.DAY_OF_WEEK)获得这个星期的第几天  get(Calendar.DAY_OF_YEAR)获得这个年的第几天  getTimeMillis()获得当前时间的毫秒表示 
4.日期计算相应方法:add()、after()和before()abstract void add(int field, int amount)  
根据日历的规则,为给定的日历字段添加或减去指定的时间量。 
boolean after(Object when)  
判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。  
boolean before(Object when)  
判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。 

更多有关Calendar类的方法的学习,可以点击:http://blog.csdn.net/myjlvzlp/article/details/8065775
二、GregorianCalendar类
GregorianCalendar是 Calendar的一个具体子类,提供了世界上大多数国家使用的标准日历系统。
它的主要方法有:
GregorianCalendar.get(GregorianCalendar.YEAR);          //得到年
GregorianCalendar.get(GregorianCalendar.MONTH);         //得到月
GregorianCalendar.get(GregorianCalendar.DATE);          //得到天
GregorianCalendar.get(GregorianCalendar.Day_OF_WEEK);   //一星期的第几天
GregorianCalendar.get(GregorianCalendar.Day_OF_MONTH);  //一月的第几天
 
注意:
GregorianCalendar是在java.util包里.
在GregorianCalendar里面,星期天是一周开始的第一天;而0代表现实生活中的一月,11代表十二月。
 
例子:(用户输入年月日,计算那天是星期几)
[java] view plain copy print?
  1. <span style="font-family:SimSun;font-size:18px;">public class TestWeekday {  
  2.     public static void main(String[] args){  
  3.         Scanner scannerInput = new Scanner(System.in);  
  4.         System.out.println("请以此按照年、月、日次序输入:");  
  5.         int year = scannerInput.nextInt();  
  6.         int month = scannerInput.nextInt();  
  7.         int day = scannerInput.nextInt();  
  8.         GregorianCalendar gre = new GregorianCalendar();  
  9.         gre.set(year, month, day);  
  10.         int num = gre.get(gre.DAY_OF_WEEK)-1;  
  11.         String weekDay = null;  
  12.         switch(num){  
  13.         case 0 :  
  14.             weekDay = "星期天";break;  
  15.         case 1 :  
  16.             weekDay = "星期一";break;  
  17.         case 2 :  
  18.             weekDay = "星期二";break;  
  19.         case 3 :  
  20.             weekDay = "星期三";break;  
  21.         case 4 :  
  22.             weekDay = "星期四";break;  
  23.         case 5 :  
  24.             weekDay = "星期五";break;  
  25.         case 6 :  
  26.             weekDay = "星期六";break;        
  27.         }  
  28.         System.out.println("您所输入的"+year+"年"+month+"月"+day+"日"+"是:"+weekDay);  
  29.     }   
  30. }</span>  
测试:请以此按照年、月、日次序输入:
2015
2
1
您所输入的2015年2月1日是:星期天


本文参考: http://blog.csdn.net/myjlvzlp/article/details/8065775
http://blog.csdn.net/playlaugh2011/article/details/6612445
http://blog.sina.com.cn/s/blog_43b943ab01009mc9.html