Calendar类
Calendar类属于java.util.Calendar,Calendar类是一个抽象类,Calendar无法直接创建对象使用,里面提供了很多操作日历字段的方法,有一个静态方法叫getInstance(),这个方法的作用是返回一个Calendar的子类对象
Calendar类常用方法
-
public abstract void add(int filed,int amount):根据日历的规则,将指定的时间量添加或减去给定的日历字段
package com.common.calendar; import java.util.Calendar; public class CalendarDemo02 { public static void main(String[] args) { Calendar c = Calendar.getInstance(); //需求1:3年前的今天 c.add(Calendar.YEAR,-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 + "日"); //需求2:10年后的5天前 c.add(Calendar.YEAR,10); c.add(Calendar.DATE,-5); 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 + "日"); } }
注意:这里的月份是从0开始的,即0-11月,所以在代码中要进行+1操作
-
public final void set(int year,int month,int date):设置当前日历的年月日
package com.common.calendar; import java.util.Calendar; public class CalendarDemo02 { public static void main(String[] args) { Calendar c = Calendar.getInstance(); c.set(2023,6,17); 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 + "日"); } }
-
案例:二月天
需求:获取任意一年的二月有多少天
思路:
1.键盘录入任意的年份
2.设置日历对象的年、月、日
- 年:来自于键盘输入
- 月:设置为3月,月份是从0开始的,所以设置的值是2
- 日:设置为1日
3.3月1日往前推一天,就是2月的最后一天
4.获取这一天输出即可
package com.common.calendar;
import java.util.Calendar;
import java.util.Scanner;
public class CalendarDemo03 {
public static void main(String[] args) {
//键盘录入任意的年份
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
int year = sc.nextInt();
//设置日历对象的年、月、日
Calendar c = Calendar.getInstance();
c.set(year, 2, 1);
//3月1日往前推一天就是2月的最后一天
c.add(Calendar.DATE, -1);
int date = c.get(Calendar.DATE);
System.out.println(year + "年的2月份有" + date + "天");
}
}