JavaSE-13.2.4【Calendar类、案例】

 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 }

 

posted @ 2021-05-29 16:10  yub4by  阅读(54)  评论(0编辑  收藏  举报