Java学习总结--033Calendar类的概述

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();
    }
}

猜你喜欢

转载自blog.csdn.net/web116629/article/details/89947624