java 14 -10 Calendar类以及练习


  Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,
       并为操作日历字段(例如获得下星期的日期)提供了一些方法。

  1、public int get(int field):返回给定日历字段的值。日历类中的每个日历字段都是静态的成员变量,并且是int类型。
  2、public void add(int field,int amount):根据给定的日历字段和对应的时间,来对当前的日历进行操作。
  3、public final void set(int year,int month,int date):设置当前日历的年月日

 1 import java.util.Calendar;
 2 
 3 public class CalendarDome1 {
 4 
 5 public static void main(String[] args) {
 6 // 其日历字段已由当前日期和时间初始化: 必须要 使用默认时区和语言环境获得一个日历。
 7 Calendar time = Calendar.getInstance();
 8 
 9 /*
10 * abstract class Person { public static Person getPerson() { return new
11 * Student(); } }
12 * 
13 * class Student extends Person {
14 * 
15 * }
16 */
17 
18 // public int get(int field):返回给定日历字段的值。日历类中的每个日历字段都是静态的成员变量,并且是int类型。
19 int year = time.get(Calendar.YEAR);
20 int month = time.get(Calendar.MONTH) + 1;// 月份是从0开始计算
21 int day = time.get(Calendar.DATE);
22 int hour = time.get(Calendar.HOUR_OF_DAY);
23 int minute = time.get(Calendar.MINUTE);
24 int second = time.get(Calendar.SECOND);
25 System.out.println(year + "年" + month + "月" + day + "日" + hour + "时"
26 + minute + "分" + second + "秒");
27 
28 System.out.println("---------------------");
29 
30 // public void add(int field,int amount):根据给定的日历字段和对应的时间,来对当前的日历进行操作。
31 
32 // 3年后的2天前
33 time.add(Calendar.YEAR, 3);
34 time.add(Calendar.DAY_OF_MONTH, -2);
35 
36 // 输出
37 year = time.get(Calendar.YEAR);
38 month = time.get(Calendar.MONTH) + 1;// 月份是从0开始计算
39 day = time.get(Calendar.DATE);
40 hour = time.get(Calendar.HOUR_OF_DAY);
41 minute = time.get(Calendar.MINUTE);
42 second = time.get(Calendar.SECOND);
43 System.out.println(year + "年" + month + "月" + day + "日" + hour + "时"
44 + minute + "分" + second + "秒");
45 System.out.println("---------------------");
46 
47 // public final void set(int year,int month,int date):设置当前日历的年月日
48 
49 // 2020年11月1号 月份要加1
50 time.set(2020, 10, 1);
51 year = time.get(Calendar.YEAR);
52 month = time.get(Calendar.MONTH) + 1;// 月份是从0开始计算
53 day = time.get(Calendar.DATE);
54 hour = time.get(Calendar.HOUR_OF_DAY);
55 minute = time.get(Calendar.MINUTE);
56 second = time.get(Calendar.SECOND);
57 System.out.println(year + "年" + month + "月" + day + "日" + hour + "时"
58 + minute + "分" + second + "秒");
59 }
60 
61 }

 

 

  需求:输入任意一个年份,得到这年的2月份有几天(可用来判断是否闰年)
  分析:
    A:键盘录入想要查询的年份
    B:进行计算:
      a:可以用设定指定日历的方法 time.set(year,2,1);
          :设定year为查询的年份,而2,1则是查询这一年的3月1号
      b:然后再用 time.add(Calendar.DAY_OF_MONTH, -1);
          :获得的那年的3月1号减去1天,就是那年的2月份的最后一天
    C:输出这一天,就是这年的2月份的天数

 1 import java.util.Calendar;
 2 import java.util.Scanner;
 3 public class CalendarTest {
 4 
 5 public static void main(String[] args) {
 6 //创建键盘输入
 7 Scanner sc = new Scanner(System.in);
 8 System.out.println("请输入你想查询的年份:");
 9 int year = sc.nextInt();
10 
11 //使用默认时区和语言环境获得一个日历。
12 Calendar time = Calendar.getInstance();
13 //获取那年的3月1号
14 time.set(year, 2,1);
15 //减去1天,获得2月最后一天
16 time.add(Calendar.DATE, -1);
17 
18 //输出这一天
19 System.out.println(year+"年的2月份有"+time.get(Calendar.DATE)+"天");
20 }
21 
22 
23 }

 

posted @ 2016-09-20 18:17  卡拉瓦  阅读(393)  评论(0编辑  收藏  举报