Calendar类
3.1 概述
- java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。
- 有两种方式可以获取GregorianCalendar对象:
- 直接创建GregorianCalendar对象;
- 通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象【本次课使用】
3.2 常用方法
方法名 | 说明 |
public static Calendar getInstance() | 获取一个它的子类GregorianCalendar对象。 |
public int get(int field) | 获取某个字段的值。field参数表示获取哪个字段的值, 可以使用Calender中定义的常量来表示: Calendar.YEAR : 年 Calendar.MONTH :月 Calendar.DAY_OF_MONTH:月中的日期 Calendar.HOUR:小时 Calendar.MINUTE:分钟 Calendar.SECOND:秒 Calendar.DAY_OF_WEEK:星期 |
public void set(int field,int value) | 设置某个字段的值 |
public void add(int field,int amount) | 为某个字段增加/减少指定的值 |
3.3 get方法示例
public class Demo { public static void main(String[] args) { //1.获取一个GregorianCalendar对象 Calendar instance = Calendar.getInstance();//获取子类对象 //2.打印子类对象 System.out.println(instance); //3.获取属性 int year = instance.get(Calendar.YEAR); int month = instance.get(Calendar.MONTH) + 1;//Calendar的月份值是0-11 int day = instance.get(Calendar.DAY_OF_MONTH); int hour = instance.get(Calendar.HOUR); int minute = instance.get(Calendar.MINUTE); int second = instance.get(Calendar.SECOND); int week = instance.get(Calendar.DAY_OF_WEEK);//返回值范围:1--7,分别表示:"星期日","星期一","星期二",...,"星期六" System.out.println(year + "年" + month + "月" + day + "日" + hour + ":" + minute + ":" + second); System.out.println(getWeek(week)); } //查表法,查询星期几 public static String getWeek(int w) {//w = 1 --- 7 //做一个表(数组) String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; // 索引 [0] [1] [2] [3] [4] [5] [6] //查表 return weekArray[w - 1]; } }
3.4 set方法示例:
public class Demo { public static void main(String[] args) { //设置属性——set(int field,int value): Calendar c1 = Calendar.getInstance();//获取当前日期 //计算班长出生那天是星期几(假如班长出生日期为:1998年3月18日) c1.set(Calendar.YEAR, 1998); c1.set(Calendar.MONTH, 3 - 1);//转换为Calendar内部的月份值 c1.set(Calendar.DAY_OF_MONTH, 18); int w = c1.get(Calendar.DAY_OF_WEEK); System.out.println("班长出生那天是:" + getWeek(w)); } //查表法,查询星期几 public static String getWeek(int w) {//w = 1 --- 7 //做一个表(数组) String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; // 索引 [0] [1] [2] [3] [4] [5] [6] //查表 return weekArray[w - 1]; } }
3.5 add方法示例:
public class Demo { public static void main(String[] args) { //计算200天以后是哪年哪月哪日,星期几? Calendar c2 = Calendar.getInstance();//获取当前日期 c2.add(Calendar.DAY_OF_MONTH, 200);//日期加200 int y = c2.get(Calendar.YEAR); int m = c2.get(Calendar.MONTH) + 1;//转换为实际的月份 int d = c2.get(Calendar.DAY_OF_MONTH); int wk = c2.get(Calendar.DAY_OF_WEEK); System.out.println("200天后是:" + y + "年" + m + "月" + d + "日" + getWeek(wk)); } //查表法,查询星期几 public static String getWeek(int w) {//w = 1 --- 7 //做一个表(数组) String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; // 索引 [0] [1] [2] [3] [4] [5] [6] //查表 return weekArray[w - 1]; } }