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+"天");
}
}