java 14 -10 Calendar类以及练习

时间:2023-03-09 04:07:48
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):设置当前日历的年月日

 import java.util.Calendar;

 public class CalendarDome1 {

 public static void main(String[] args) {
// 其日历字段已由当前日期和时间初始化: 必须要 使用默认时区和语言环境获得一个日历。
Calendar time = Calendar.getInstance(); /*
* abstract class Person { public static Person getPerson() { return new
* Student(); } }
*
* class Student extends Person {
*
* }
*/ // public int get(int field):返回给定日历字段的值。日历类中的每个日历字段都是静态的成员变量,并且是int类型。
int year = time.get(Calendar.YEAR);
int month = time.get(Calendar.MONTH) + 1;// 月份是从0开始计算
int day = time.get(Calendar.DATE);
int hour = time.get(Calendar.HOUR_OF_DAY);
int minute = time.get(Calendar.MINUTE);
int second = time.get(Calendar.SECOND);
System.out.println(year + "年" + month + "月" + day + "日" + hour + "时"
+ minute + "分" + second + "秒"); System.out.println("---------------------"); // public void add(int field,int amount):根据给定的日历字段和对应的时间,来对当前的日历进行操作。 // 3年后的2天前
time.add(Calendar.YEAR, 3);
time.add(Calendar.DAY_OF_MONTH, -2); // 输出
year = time.get(Calendar.YEAR);
month = time.get(Calendar.MONTH) + 1;// 月份是从0开始计算
day = time.get(Calendar.DATE);
hour = time.get(Calendar.HOUR_OF_DAY);
minute = time.get(Calendar.MINUTE);
second = time.get(Calendar.SECOND);
System.out.println(year + "年" + month + "月" + day + "日" + hour + "时"
+ minute + "分" + second + "秒");
System.out.println("---------------------"); // public final void set(int year,int month,int date):设置当前日历的年月日 // 2020年11月1号 月份要加1
time.set(2020, 10, 1);
year = time.get(Calendar.YEAR);
month = time.get(Calendar.MONTH) + 1;// 月份是从0开始计算
day = time.get(Calendar.DATE);
hour = time.get(Calendar.HOUR_OF_DAY);
minute = time.get(Calendar.MINUTE);
second = time.get(Calendar.SECOND);
System.out.println(year + "年" + month + "月" + day + "日" + hour + "时"
+ minute + "分" + second + "秒");
} }

  需求:输入任意一个年份,得到这年的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月份的天数

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