Calendar日历类和GregorianCalendar公历类
相应的API文档:Calendar类和GregorianCalendar类
人们对于时间的认识是:某年某月某日,这样的日期概念。计算机中时间是用long类型表示的。两者之间通过Calendar搭起桥梁。
Calendar类和GregorianCalendar类的关系:
java.lang.Object
java.util.Calendar
java.lang.Object
java.util.Calendar
java.util.GregorianCalendar
GergorianCalendar类是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)
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 表示的时间之后,返回判断结果。
判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。
boolean before(Object when)
判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。
判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。
更多有关Calendar类的方法的学习,可以点击:http://blog.youkuaiyun.com/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代表十二月。
例子:(用户输入年月日,计算那天是星期几)
<span style="font-family:SimSun;font-size:18px;">public class TestWeekday {
public static void main(String[] args){
Scanner scannerInput = new Scanner(System.in);
System.out.println("请以此按照年、月、日次序输入:");
int year = scannerInput.nextInt();
int month = scannerInput.nextInt();
int day = scannerInput.nextInt();
GregorianCalendar gre = new GregorianCalendar();
gre.set(year, month, day);
int num = gre.get(gre.DAY_OF_WEEK)-1;
String weekDay = null;
switch(num){
case 0 :
weekDay = "星期天";break;
case 1 :
weekDay = "星期一";break;
case 2 :
weekDay = "星期二";break;
case 3 :
weekDay = "星期三";break;
case 4 :
weekDay = "星期四";break;
case 5 :
weekDay = "星期五";break;
case 6 :
weekDay = "星期六";break;
}
System.out.println("您所输入的"+year+"年"+month+"月"+day+"日"+"是:"+weekDay);
}
}</span>
测试:
请以此按照年、月、日次序输入:
2015
2
1
您所输入的2015年2月1日是:星期天
本文参考:
2015
2
1
您所输入的2015年2月1日是:星期天
本文参考: