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 }
时间: 2024-10-16 04:05:58

java 14 -10 Calendar类以及练习的相关文章

java Date和Calendar类

最近在无聊的看书,遇到一编程题目,问题描述如下: 黑色星期五源于西方迷信:耶稣基督死于星期五,而13也是一个不吉利的数字.黑色星期五即该日同时是星期五又是13号,求未来几年内这样的日子. 基于该问题会涉及到java中的关于时间类的部分,故尝试通过该题目总结现阶段的java Date和calendar类的问题. 一.Date类 查阅API文档可知,Date类源于jdk1.0版本,并在jdk1.1版本中其绝大多数方法被Calendar类中方法所代替.Date类构造函数public且未abstrct,

HDU-1201-18岁生日(Java AC利用Calendar类)

18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 21864    Accepted Submission(s): 6933 Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以

Java基础之Calendar类

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法.瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量.与其他语言环境敏感一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象.Calendar的getInstance 方

java基础系列--Calendar类

原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7136575.html 1.Calendar概述 Java官方推荐使用Calendar来替换Date的使用,Calendar与Date之间可以自由的进行转换,转换的纽带是time,使用Calendar的getTime()方法可以得到一个Date类型的对象,这个对象底层是使用Date的第二个带Long型参数的构造器创建的,这个Long型参数是Calendar中的time字段中保存的值,这个t

Java基础(38):Calendar类的应用(优于Date类)

Calendar 类的应用 Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处理. java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();

【Java】使用Calendar类来获取当前的日期

在<[Java]有关System.currentTimeMillis()的思考>(点击打开链接)中已经介绍过,如果利用System.currentTimeMillis()取出当前的时期.在Java中其实同样可以利用Calendar类来获取当前的日期.只是其取法比较繁琐,要分别取出当前的年.月.日.时.分.秒将其拼接起来. 如下的代码: import java.util.Calendar; import java.util.GregorianCalendar; public class cale

整理Java基础知识--Calendar 类

Java Calendar类Calendar 类是 abstract 类 实际使用时实现特定的子类对象 创建一个代表当前日期的Calendar 对象Calendar ss = Calendar.getInstance();Calendar 类对象字段类型 常量 描述 Calendar.YEAR 年 Calendar.MONTH 月 Calendar.DATE 日 Calendar.DAY_OF_MONTH 日期 Calendar.HOUR 12小时制 Calendar.HOUR_OF_DAY 2

Java 中常用的类:包括基本类型的包装类、Date 类、SimpleDateFormat 类、 Calendar 类、 Math 类

JAVA中的包装类 包装类里没有String,它是引用数据类型 基本类型是不能调用方法的,而其包装类具有很多方法 包装类主要提供了两大类方法: 1. 将本类型和其他基本类型进行转换的方法 2. 将字符串和本类型及包装类互相转换的方法 基本类型 对应的包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean Integer m=new Intege

Java 日期、时间类

Java 原本提供了 Date 和 Calendar 用于处理日期.时间的类,包括创建日期.时间对象,获取系统当前日期.时间等操作.但 Date 不仅无法实现国际化,而且它对不同属性也使用了前后矛盾的偏移量,比如月份与小时都是从0开始的,月份中的天数则是从1开始的,年又是从1900开始的,而 java.util.Calendar 则显得过于复杂,从下面介绍中会看到传统 Java 对日期.时间处理的不足.Java8 吸取了 Joda-Time 库(一个被广泛使用的日期.时间库)的经验,提供了一套全