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()方法解析 如果一个程序总是按规定的流程运行,无需处理用户动作 ...
随机推荐
- jquery常用选择器
1.数字性过滤 $("tr:first") //选择所有tr元素的第一个 $("tr:last") / ...
- C# 线程同步
Mutex 类 使用Mutex类来同步两个单独的程序.Mutex是一种原始的同步方式,其只对一个线程授予对共享资源的独占访问. const string NutexName = "C&quo ...
- Mybatis学习记录(七)----Mybatis延迟加载
1.什么是延迟加载 resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 需求: ...
- iOS didReceiveMemoryWarning 的处理
当iOS触发didReceiveMemoryWarning这个方法的时候,我们一般会做一些手动处理,强制清理掉一些目前不用的数据.但是这个方法并不只是单纯的通知开发者你的内存已经吃紧了,系统通知你的同 ...
- Android项目结构分析
andriod项目目录结构如下图: 1. src目录 该目录一个普通的保存java源文件的目录,其和普通java工程中的src目录是一样的. 2. gen目录 此目录用于存放所有由ADT插件自动生成的 ...
- 【读书笔记】iOS-Tagged Pointer对象-注意事项
一,2013年9月,苹果推出了iPhone5s,与此同时,iPhone5s配备了首个采用64位架构的A7双核处理器,为了节省内存和提高执行效率,苹果提出了Tagged Pointer的概念. 对于64 ...
- .NET下dropdownlist的基本操作
//List列中索引的赋值 teacher.DataValueField = ds.Tables[0].Columns["pidcord"].ColumnName; //List列 ...
- 关于OC中直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型
关于OC直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型,我们完全可以把其转换为OC对象来进项打印调试,而不必对结构体中的成员变量进行打印.就好比我们可以使 ...
- ReSharper 卸载后 VS2012 没有提示问题
虽然ReSharper非常强大,但由于公司电脑配置太差,被迫卸载了.但发现卸载后,VS2012自带的提示都没有了. 网上找了下相关的解决方法.摘抄下来,作为自己笔记. 解决方法原文出处:http:// ...
- android 基础控件(EditView、SeekBar等)的属性及使用方法
android提供了大量的UI控件,本文将介绍TextView.ImageView.Button.EditView.ProgressBar.SeekBar.ScrollView.WebView ...