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)+"天");
} }
java 14 -10 Calendar类以及练习的更多相关文章
- java基础系列--Calendar类
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7136575.html 1.Calendar概述 Java官方推荐使用Calendar来替换 ...
- java:通过Calendar类正确计算两日期之间的间隔
在开发Android应用时偶然需要用到一个提示用户已用天数的功能,从实现上来看无非就是持久化存入用户第一次使用应用的时间firstTime(通过SharedPreferences .xml.sqlit ...
- Java基础之Calendar类、JNDI之XML
一.Calendar类 从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现.在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要 ...
- Java基础(38):Calendar类的应用(优于Date类)
Calendar 类的应用 Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calen ...
- Java中由Calendar类获取的月、天和小时的简单处理
在Java中,Calendar是日期处理的一个重要的类.但是,我们使用Calendar获取的月份,天,小时等可能需要进行简单的处理才能满足我们的需要.比如,月份范围是0-11,而我们可能需要的是1-1 ...
- Java中的Calendar 类和SimpleDateFormat 类
1.Calendar 类:import java.util.Calendar; Calendar cal = Calendar.getInstance(); ...
- java 14 -5 System类
System类包含一些有用的类字段和方法.它不能被实例化. 方法: 1.public static void gc():运行垃圾回收器. 2.public static void exit(int s ...
- 【代码笔记】Java常识性基础补充(三)——Java的API及Object类、正则表达式、getTime()方法、DateFormat类、Calendar类
1.0 Java 的API(API: Application(应用) Programming(程序) Interface(接口)) 2.0 Java API就是JDK中提供给我们使用的类,这些类将底层 ...
- Java程序设计10——与运行环境交互
本部分介绍一些与运行环境相关的类 Sun为Java提供了丰富的基础类库,Java SE有三千多个基础类,要多敲代码,多练. 1.main()方法解析 如果一个程序总是按规定的流程运行,无需处理用户动作 ...
随机推荐
- Force.com微信企业号开发系列(一) - 启用二次验证
微信于9月份推出企业号后引起了业界不小的反响,许多企业都在思索企业号将如何影响企业的运营,从本文开始,我将详细阐述微信企业号开发的相关知识,而本文将着重介绍如何实现更高安全机制的二次验证. 申请企业体 ...
- android 开源和一些博客总结
记录一些开源的android库 (1)Http请求库封装 https://github.com/kevinsawicki/http-request (2)浮动组件,定制化 toast http://f ...
- Python基础(9)--正则表达式
正则表达式是一个很有用的工具,可处理复杂的字符匹配和替换工作.在Python中内置了一个re模块以支持正则表达式. 正则表达式有两种基本的操作,分别是匹配和替换. 匹配就是在一个文本字符串中搜索匹配一 ...
- 【原】error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string'
今天遇到一个非常难以排查的BUG,谷歌度娘都问过了依旧无解,最后自己重新尝试之后找到解决方案: 先看一下报错信息: 1>.\lenz.cpp(2197) error C2679: binary ...
- 那些Xcode不能错过的插件
转载来自网络 古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!以下是搜集的一些有力的XCode插件. 1.全能搜索家CodePilot 2.0 你要找的 ...
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
当Adobe.Microsoft.Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协 ...
- facebook开源前端UI框架React初探
最近最火的前端UI框架非React莫属了.赶紧找时间了解一下. 项目地址:http://facebook.github.io/react/ 官方的介绍:A JavaScript library for ...
- c# 反射简单使用
类库dll,将生成ExampleLib.dll文件 namespace ExampleLib { public class Example { public static string FuncA() ...
- netty-socketio使用namespace
一.简介 netty-socketio中的namespace可以用于区别在相同连接地址下的不同用户,当两个不同的用户打开同一个页面的时候,可以使用namespace用来标记不同用户.例如我们可以在用户 ...
- Ubuntu,QT5连接MySQL
用QT连接MySQL需要共享库 libqsqlmysql.so的驱动,路径在plugin/sqldrivers目录下,乍看已经可用了,其实不然. 用ldd命令分析一下,libmysqlclient_r ...