Calendar日历类的使用

Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法

Calendar提供了一个类方法,getInstance用于获取Calendar对象,其日历字段已使用当前时间和日期初始化   即 Calendar right now = Calendar getInstance;

Calendar c = Calendar.getInstance(继承情况下,以多态的形式)
 public abstract void add(int filed,int amount):根据日历规则,将指定的时间量添加或减去给定的日历字段
 public final void set(int year,int month,int date):设置当前日历的年月日

package com.itheima;

import java.util.Calendar;

/**
 *  public abstract void add(int filed,int amount):根据日历规则,将指定的时间量添加或减去给定的日历字段
 *  public final void set(int year,int month,int date):设置当前日历的年月日
 * */
public class Lian01 {
    public static void main(String[] args) {
        //获取当前年月日
       getCalendar1();
       //增减当前年月日
        getCalendar2();
        //设置当前年月日
        getCalender3();

    }
    //方法一:获取当前年月日
    public static void getCalendar1(){
        //获取日历对象
        Calendar c = Calendar.getInstance();//多态的形式
        //public int get(int field):返回给定日历字段的值
        int year= c.get(Calendar.YEAR);
        //月份需要加一方可显示当前月份
        int month = c.get(Calendar.MONTH)+1;
        int date = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");
    }

    //方法二:添加或删除给定的日历字段
    public static void getCalendar2(){
        //获取日历对象
        Calendar c =Calendar.getInstance();
        //public abstract void add(int filed,int amount):根据日历的规则,将制定的时间量添加或减去给定的日历字段
        //需求1:三年前的今天
        c.add(Calendar.YEAR,-3);//给日历的年份减3
        int year = c.get(Calendar.YEAR);
        int month =c.get(Calendar.MONTH)+1;
        int date = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+date+"日");


        //需求二:10年后的5天前
        c.add(Calendar.YEAR,+10);//年份加10
        c.add(Calendar.DATE,-5);//日子往前推五天
        int year1= c.get(Calendar.YEAR);
        int month1= c.get(Calendar.MONTH)+1;
        int date1= c.get(Calendar.DATE);
        System.out.println(year1+"年"+month1+"月"+date1+"日");

    }

    //方法三:设置当前日历的年月日
    public static void getCalender3(){
        //创建日历对象
        Calendar c = Calendar.getInstance();
        //public final void set(int year,int month,int date):设置当前日历的年月日
        c.set(2050,10,25);
        int year1= c.get(Calendar.YEAR);
        int month1= c.get(Calendar.MONTH)+1;
        int date1= c.get(Calendar.DATE);
        System.out.println(year1+"年"+month1+"月"+date1+"日");

    }
}

案例:二月天

需求:获取任意一年的二月有多少天
    思路:
       1.键盘录入任意的年份
       2.设置日历对象的年月日
       3.3月1日往前推一天,就是二月最后一天
          年:来自键盘录入
            月:设置为3月,月份是从0开始的,所以设置的值是2
            日:设置为1日
      4.获取这一天输出即可

package com.itheima;

import java.util.Calendar;
import java.util.Scanner;

//案例:二月天
    //需求:获取任意一年的二月有多少天
    //思路:
        //1.键盘录入任意的年份
        //2.设置日历对象的年月日
        //3.3月1日往前推一天,就是二月最后一天
            //年:来自键盘录入
            //月:设置为3月,月份是从0开始的,所以设置的值是2
            //日:设置为1日
        //4.获取这一天输出即可
public class Calendar01 {
    public static void main(String[] args) {
        //创建键盘录入对象,并提示输入年份
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        //接收日历
        Calendar c = Calendar.getInstance();
        //键盘录入年份
        int year = sc.nextInt();
        //设置年月日
        c.set(year,2,1);
        //3月1日往前推一天,就是二月最后一天
        c.add(Calendar.DATE,-1);
        //设置变量,接收这一时间
        int date= c.get(Calendar.DATE);
        //在控制台打印
        System.out.println(year+"年的2月有"+date+"天");
    }
}


版权声明:本文为qq_45927587原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。