Calendar日历类和GregorianCalendar公历类
人们对于时间的认识是:某年某月某日,这样的日期概念。计算机中时间是用long类型表示的。两者之间通过Calendar搭起桥梁。
Calendar类和GregorianCalendar类的关系:
java.lang.Object
java.util.Calendar
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)
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 表示的时间之前,返回判断结果。
二、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代表十二月。
例子:(用户输入年月日,计算那天是星期几)
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);
}
}
测试:
请以此按照年、月、日次序输入:
2015
2
1
您所输入的2015年2月1日是:星期天
本文参考: