2018.11.3 23:40
14.19_常见对象(Calendar类的概述和获取日期的方法)(掌握)
*A:Calendar类的概述
* Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
- B:成员方法
- public static Calendar getInstance()
- public int get(int field)*
14.20_常见对象(Calendar类的add()和set()方法)(掌握)‘
A:成员方法
* public void add(int field,int amount)
* public final void set(int year,int month,int date)
代码练习:
package com.heima.otherclass;
import java.util.Calendar;
/*
* A:Calendar类的概述
* Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
* B:成员方法
* public static Calendar getInstance()
* public int get(int field)
A:成员方法
* public void add(int field,int amount)
* public final void set(int year,int month,int date)
* B:案例演示
* Calendar类的成员方法使用
*/
public class Demo_Calendar {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
text(c);
c.add(c.YEAR, -1); //对特定字段向前减或者向后加
System.out.println("将年数向前减去1后:" + c.get(Calendar.YEAR));
c.set(Calendar.MONTH, 8); //修改特定字段
System.out.println("将月数设置为9月后:"+(c.get(Calendar.MONTH)+1));
c.set(2000, 8, 8); //修改年月日成特定的日期
System.out.println("修改后的日期是:" + c.get(Calendar.YEAR)+"年 "+get_Num(c.get(Calendar.MONTH)+1)+"月 "+get_Num(c.get(Calendar.DAY_OF_MONTH))
+"日 " + get_WEEK(c.get(Calendar.DAY_OF_WEEK)));
}
private static void text(Calendar c ) {
System.out.println(c);
System.out.println("当前瞬间与日历字段:" + c);
System.out.println(c.get(Calendar.YEAR)); //通过字段获取年
System.out.println(c.get(Calendar.MONTH)+1); //通过字段获取月,但是月是从0开始的
System.out.println(c.get(Calendar.DAY_OF_MONTH)); //通过字段获取月中第几天
System.out.println(get_WEEK(c.get(Calendar.DAY_OF_WEEK))); //通过字段获取星期,第一天是星期日,第七天是星期六
System.out.println("今天的日期是:" + c.get(Calendar.YEAR)+"年 "+get_Num(c.get(Calendar.MONTH)+1)+"月 "+get_Num(c.get(Calendar.DAY_OF_MONTH))
+"日 " + get_WEEK(c.get(Calendar.DAY_OF_WEEK)));
}
//写一个方法按中国逻辑获取星期(查表法)
/*
分析:
1.返回类型String,参数类型int
2将星期存储在字符数组中
3通过参数匹配获取星期
*/
public static String get_WEEK(int week) {
String[] arr = {"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
return arr[week];
}
//规范日期的月份以及天数的表示
/*
* 分析:
* 返回类型String
* 参数类型int
* 是个位数前面加0,否则不操作
*/
public static String get_Num(int num) {
return num > 9 ? "" + num :"0" + num; //条件表达式返回特定格式
}
}
程序结果:
当前瞬间与日历字段:java.util.GregorianCalendar[time=1541481786513,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=“Asia/Shanghai”,offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2018,MONTH=10,WEEK_OF_YEAR=45,WEEK_OF_MONTH=2,DAY_OF_MONTH=6,DAY_OF_YEAR=310,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=1,HOUR_OF_DAY=13,MINUTE=23,SECOND=6,MILLISECOND=513,ZONE_OFFSET=28800000,DST_OFFSET=0]
2018
11
6
星期二
今天的日期是:2018年 11月 06日 星期二
将年数向前减去1后:2017
将月数设置为9月后:9
修改后的日期是:2000年 09月 08日 星期五