-
概述
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
-
构造:父类引用指向子类对象
//实例化
//方式一:创建其子类(GregorianCalendar)的对象
//方式二:调用其静态方法getInstance()
Calendar c = Calendar.getInstance();//父类引用指向子类对象,右边的方法返回一个子类对象
-
获取——get()
获取年份
System.out.println(x.get(Calendar.YEAR));
获取月份(月份是从0开始编号的)
System.out.println(x.get(Calendar.MARCH));
获取具体日期(月中的第几天)
System.out.println(x.get(Calendar.DAY_OF_MONTH));
获取星期(周日是第一天,周六是最后一天)
System.out.println(x.get(Calendar.DAY_OF_WEEK));
-
设置——set(){calendar是可变性的}
public void calenderTest(){
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getClass()); //class java.util.GregorianCalendar
int day = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(day); //6
calendar.set(Calendar.DAY_OF_WEEK,5);
day = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(day); //5
}
-
添加——add()
public void calenderTest() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_WEEK, 3);
int day1 = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(day1);//2
}
-
日历类——>Date getTime()
public void calender1Test() {
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
System.out.println(date);
}
-
Date——>日历类 setTime()
public void calender1Test() {
Date date1 = new Date();
Calendar calendar= Calendar.getInstance();
calendar.setTime(date1);
int day = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(day);
}
-
需求:按照国内日常习惯,生成当天具体日期
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR) + "年" + getNum(c.get(Calendar.MARCH) + 1) + "月" +
getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
将星期存储到表中进行查表——getWeek
public static String getWeek(int week){
String[] arr = {" ","星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
return arr[week];
}
个数数字前面补0——getNum
public static String getNum(int num) {
/*
* if(num > 9) {
* return "" + "" + num;
* }
* else {
* return "0" + num;
* }
*/
return num > 9 ? "" + num : "0" + num;
}