1 package day4.haifei02;
2
3 import java.util.Calendar;
4
5 /*
6 2.4 Calendar类
7 日历类
8 Calendar 为特定瞬间与一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
9 Calendar 提供了一个类方法 getInstance 用于获取这种类型的一般有用的对象。该方法返回一个Calendar 对象。
10 其日历字段已使用当前日期和时间初始化:Calendar rightNow = Calendar.getInstance();
11 常用方法
12 public int get(int field) 返回给定日历字段的值
13 public abstract void add(int field, int amount) 根据日历的规则,将指定的时间量添加或减去给定的日历字段
14 public final void set(int year,int month,int date) 设置当前日历的年月日
15 */
16 public class CalendarDemo {
17 public static void main(String[] args) {
18 Calendar cal = Calendar.getInstance(); //获取日历类对象;其实质通过多态实现
19 System.out.println(cal);
20
21 int year = cal.get(Calendar.YEAR);
22 int month = cal.get(Calendar.MONTH) + 1; //注意:默认月从0开始计数
23 int day = cal.get(Calendar.DATE);
24 System.out.println(year + "年" + month + "月" + day + "日");
25
26 //需求1:三年前的今天
27 cal.add(Calendar.YEAR, -3);
28 year = cal.get(Calendar.YEAR);
29 month = cal.get(Calendar.MONTH) + 1;
30 day = cal.get(Calendar.DATE);
31 System.out.println(year + "/" + month + "/" + day);
32
33 //需求2:十年后的五天前
34 cal.add(Calendar.YEAR, 10);
35 cal.add(Calendar.DATE, -5);
36 year = cal.get(Calendar.YEAR);
37 month = cal.get(Calendar.MONTH) + 1;
38 day = cal.get(Calendar.DATE);
39 System.out.println(year + "-" + month + "-" + day);
40
41 cal.set(1996, 9, 18);
42 year = cal.get(Calendar.YEAR);
43 month = cal.get(Calendar.MONTH);
44 day = cal.get(Calendar.DATE);
45 System.out.println(year + "." + month + "." + day);
46 }
47 }
1 package day4.haifei02;
2
3 import java.util.Calendar;
4 import java.util.Scanner;
5
6 /*
7 2.5 案例-二月天
8 需求:获取任意一年的二月有多少天
9 思路:年来自键入,月设置为3月(默认月从0开始,所以设置值为2),日设置为1日
10 3月1日往前推一天就是2月最后一天,即当年2月总天数
11 */
12 public class CalendarTest {
13 public static void main(String[] args) {
14 Scanner sc = new Scanner(System.in);
15 System.out.println("请输入年份:");
16 int year = sc.nextInt();
17
18 Calendar cal = Calendar.getInstance();
19 cal.set(year, 2, 1); //设置年月日(某年的3月1日)
20 // System.out.println(cal.get(Calendar.MONTH)); //输出2,实际为3月
21
22 cal.add(Calendar.DATE, -1); //往前推一天
23
24 int num = cal.get(Calendar.DATE);
25 System.out.println(year + "年2月有" + num + "天");
26 }
27 }