Java学习笔记23(Calendar类)
Calendar意味日历,对Date类中的很多方法做了改进
Calendar类是一个抽象类,不可以见对象,需要子类完成实现
不过这个类有特殊之处,不需要创建子类对象,而是使用它的静态方法直接获取:
示例:
package demo; import java.util.Calendar; public class CalendarDemo {
public static void main(String[] args) { Calendar c1 = Calendar.getInstance();
System.out.println(c1);
}
}
发现输出很多内容,我们仔细看下:
java.util.GregorianCalendar[time=1515655126876,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo
[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],
firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2018,MONTH=0,WEEK_OF_YEAR=2,
WEEK_OF_MONTH=2,DAY_OF_MONTH=11,DAY_OF_YEAR=11,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,
HOUR=3,HOUR_OF_DAY=15,MINUTE=18,SECOND=46,MILLISECOND=876,ZONE_OFFSET=28800000,DST_OFFSET=0]
这些和日期有关的内容用一些方法可以得到:
示例:
package demo; import java.util.Calendar; public class CalendarDemo {
public static void main(String[] args) {
function();
}
public static void function(){
Calendar c1 = Calendar.getInstance();
int year = c1.get(Calendar.YEAR);
//获取月份时候记得加1,类的内部是0-11月
int month = c1.get(Calendar.MONTH)+1;
int day = c1.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+month+"月"+day+"日");
//输出:2018年1月11日
}
}
其他的一些方法:
package demo; import java.util.Calendar;
import java.util.Date; public class CalendarDemo {
public static void main(String[] args) {
function1();
function2();
function3();
} public static void function1() {
Calendar c1 = Calendar.getInstance();
c1.set(Calendar.MONTH, 9);
int year = c1.get(Calendar.YEAR);
int month = c1.get(Calendar.MONTH) + 1;
int day = c1.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日");
// 输出:2018年10月11日
} public static void function2() {
Calendar c1 = Calendar.getInstance();
c1.add(Calendar.DAY_OF_MONTH, 250);
int year = c1.get(Calendar.YEAR);
int month = c1.get(Calendar.MONTH) + 1;
int day = c1.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日");
// 输出:2018年9月18日
} public static void function3() {
Calendar c1 = Calendar.getInstance();
Date date = c1.getTime();
System.out.println(date);
// 输出:Thu Jan 11 15:36:39 CST 2018
}
}
Calendar类的简单应用:
1.求出自己已经出生多少天:
示例:
package demo; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner; //需要知道生日,今日,再做运算即可
public class DateTest {
public static void main(String[] args) throws ParseException {
function();
} public static void function() throws ParseException {
System.out.println("请输入出生日期(格式:YYYY-MM-dd)");
String birthdayString = new Scanner(System.in).next();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date birthdayDate = sdf1.parse(birthdayString);
Date todayDate = new Date();
long birthdaySecond = birthdayDate.getTime();
long todaySecond = todayDate.getTime();
long second = todaySecond - birthdaySecond;
if (second < 0) {
System.out.println("还没出生");
} else {
System.out.println(second / 1000 / 60 / 60 / 24);
}
}
}
2.算闰年(这里不用除4等方法)
示例:
package demo; import java.util.Calendar;
import java.util.Scanner; public class DateTest {
public static void main(String[] args){
function();
} public static void function(){
Calendar c1 = Calendar.getInstance();
System.out.println("请输入年份");
int year = new Scanner(System.in).nextInt();
c1.set(year, 2, 1);//这里没有错误,2就是3月,类中是0-11月
c1.add(Calendar.DAY_OF_MONTH, -1);
int day = c1.get(Calendar.DAY_OF_MONTH);
if(day == 29){
System.out.println("是闰年");
}else{
System.out.println("不是闰年");
}
}
}
Java学习笔记23(Calendar类)的更多相关文章
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
- Java学习笔记16---抽象类与接口的浅显理解
抽象类是由abstract修饰的类,定义方式如public abstract class A{...}. 接口由interface修饰,定义方式如public interface B{...}. 抽象 ...
- 【原】Java学习笔记031 - 常用类
package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 类 Math: ...
- 1.9(java学习笔记)object类及toString()与equals()方法
object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...
- Java学习笔记day06_自定义类_ArrayList
1.自定义类class 使用类的形式, 对现实中的事物进行描述. 类是引用数据类型. 事物: 方法,变量. 方法:事物具备的功能. 变量:事物的属性. 格式: public class 类名{ //属 ...
- Java学习笔记(2)——有关类
Java类的高级特性: {Java管理文件机制:类包. 同一个包中的类互相访问时,可以不指定包名. 同一个包中的类不必存放在同一位置,如com.lang.class1和com.lang.class2可 ...
- 0029 Java学习笔记-面向对象-枚举类
可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如单例类 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象:还有就是枚举类. 创建少数几个对象, ...
- Java学习笔记 02 String类、StringBuilder类、字符串格式化和正则表达式
一.String类一般字符串 声明字符串 >>String str 创建字符串 >>String(char a[])方法用于将一个字符数组创建为String对象 >> ...
- java学习笔记之String类
String类总结 String类概述: java.lang.String 类是字符串操作类 String类的常用构造方法: //1.直接赋值 String str= "hellojava& ...
随机推荐
- Java----list常用方法汇总
package ListTest; import java.util.ArrayList; import java.util.Iterator ; import java.util.List; /** ...
- html页面高度自适应
本文实现的效果是依据浏览器分辨率的不同.页面底端背景色自适应浏览器高度,也就是能够自己主动填充背景色. <script type="text/javascript"> ...
- Sql去重
distinct:用于返回唯一不同的值. 注意:1.语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的. 2.distinct必须放在开头 如select disti ...
- 利用反射操作bean的属性和方法
今天在开发中碰到这样一个场景:当请求添加项目下的目录时,传过来的是一个IndexModel,这个Model里有关于这个目录字段的详细信息,包括基础报表,实时,漏斗等信息(这些字段类型都是boolean ...
- MPSOC之1——overview、开发板、工具
1.MPSOC overview MPSOC是xilinx公司推出的新一代集成SOC,比ZYNQ厉害了一个等级. 熟悉一个芯片,不能一头扎进详细的数据手册,应该从overview开始大概了解,然后浏览 ...
- 如何修改maven默认仓库(即repository)的路径
如何修改maven默认仓库(即repository)的路径 1 在maven的安装目录下,修改Eclipse(或IntelliJ IDEA)的MAVEN的存储位置,点击Browser按钮,选择set ...
- 项目(1)----用户信息管理系统(5)---(剩余jsp界面)
完成剩余jsp界面 首页界面前面我写了,接下来还有就是一个显示所有用户界面 1:注册界面 2:显示所有用户信息界面 1:注册界面 <%@ page language="java&quo ...
- redis集群配置,spring整合jedis,缓存同步
前台的商品数据(图片等加载缓慢)查询,先从redis缓存查询数据. redis是一个nosql数据库,内存版数据库,读取速度11w/s.本身具有内存淘汰机制,是单线程服务器(分时操作系统),线程安全. ...
- 【python】字符串变量赋值时字符串可用单或双引号
>>> name='萧峰' >>> print(name) 萧峰 >>> name="独孤求败" >>> p ...
- OC学习10——内存管理
1.对于面向对象的语言,程序需要不断地创建对象.这些对象都是保存在堆内存中,而我们的指针变量中保存的是这些对象在堆内存中的地址,当该对象使用结束之后,指针变量指向其他对象或者指向nil时,这个对象将称 ...