1.Calendar类的概述和获取日期的方法
A:Calendar类的概述
Calendar 类是一个抽象类,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象
它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR
等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
B:成员方法
public static Calendar getInstance() 使用默认时区和语言环境获得一个日历对象
public int get(int field) 获得给定日历字段对应的值 field通过Calendar提供的字段来拿
public class MyTest {
public static void main(String[] args) {
//Randome 可以生成一些随机数据
//System
// BigDecimal
//Date
// SimpleDateFormat
//Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
//瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
//static Calendar getInstance ()
//使用默认时区和语言环境获得一个日历。
//获取一个该类对象
//如果一个类没有构造方法:它里面的东西全是静态,或者提供了方法,让你获取他的对象
//GregorianCalendar
//YEAR = 2019, MONTH = 4, WEEK_OF_YEAR = 18, WEEK_OF_MONTH = 1, DAY_OF_MONTH = 2, DAY_OF_YEAR = 122, DAY_OF_WEEK = 5, DAY_OF_WEEK_IN_MONTH = 1, AM_PM = 1, HOUR = 1, HOUR_OF_DAY = 13, MINUTE = 42, SECOND = 56, MILLISECOND = 195, ZONE_OFFSET = 28800000, DST_OFFSET = 0
Calendar instance = Calendar.getInstance();
// System.out.println(instance.toString());
int year = instance.get(Calendar.YEAR);
int month = instance.get(Calendar.MONTH);
int day = instance.get(Calendar.DAY_OF_MONTH);
System.out.println(year);
System.out.println(month);
System.out.println(day);
System.out.println(instance.get(Calendar.HOUR_OF_DAY));
System.out.println(instance.get(Calendar.MINUTE));
System.out.println(instance.get(Calendar.SECOND));
}
}
2.Calendar类的add()和set()方法
A:成员方法
public void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
public final void set(int year,int month,int date) 设置日历时间 年月日
public class MyTest2 {
public static void main(String[] args) {
Calendar instance = Calendar.getInstance();
//给相应的日期字段,加上或减去相应的时间量
instance.add(Calendar.YEAR,1);
instance.add(Calendar.MONTH, 1);
instance.add(Calendar.DAY_OF_MONTH,-1);
int i = instance.get(Calendar.YEAR);
int i1 = instance.get(Calendar.MONTH);
int i2 = instance.get(Calendar.DAY_OF_MONTH);
System.out.println(i);
System.out.println(i1);
System.out.println(i2);
}
public class MyTest3 {
public static void main(String[] args) {
Calendar instance = Calendar.getInstance();
//可以设置年月日,时分秒 给某个日历字段设置值
instance.set(Calendar.YEAR,2010);
instance.set(Calendar.MONTH,10);
int i = instance.get(Calendar.YEAR);
System.out.println(i);
System.out.println(instance.get(Calendar.MONTH));
}
}
3.如何获取任意年份的2月份有多少天
A:案例演示
需求:键盘录入任意一个年份,获取任意一年的二月有多少天
分析:
- a: 键盘录入一个年份
- b: 创建一个Calendar对象
- c: 把这个Calendar的时间设置为a中录入的年的3月1号 注意2表示3月
- d: 向前推算一天
- e: 获取月中的天
- f: 输出
public class MyTest4 {
public static void main(String[] args) {
//A:
//案例演示
//需求:键盘录入任意一个年份,获取任意一年的二月有多少天
//分析:
Scanner sc = new Scanner(System.in);
System.out.println("请随便输入一个年份");
int year = sc.nextInt();
//你把他输的年份,设置成 3月的第一天
//然后你减去一天 回到 2月的最后一天
Calendar instance = Calendar.getInstance();
instance.set(year,2,1);
instance.add(Calendar.DAY_OF_MONTH,-1);
int day = instance.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
//判断闰年
if(year%4==0&&year%100!=0||year%400==0){
System.out.println("闰年");
}
boolean b = LocalDate.now().isLeapYear();
boolean leapYear = LocalDate.of(2011, 01, 01).isLeapYear();
}
}