您的位置:首页 > 编程语言 > Java开发

Java复习笔记14【Calendar类的简单使用】

2015-05-02 13:44 369 查看
package com.lesson11.example;

import java.util.Calendar;
import java.util.Date;

/*
*简单了解Calendar类,操作时间日期
* */

public class CalendarExample {

public static void main(String args[]){

/*

* Calendar类是抽象类,且Calendar类的构造方法是protected的,所以

* 无法使用Calendar类的构造方法来创建对象,则需要getInstance方法用来创建对象。

* ---------------------------------------------------------

* 方法:public static Calendar getInstance()

* 功能:创建 Calendar对象

* 返回值:Calendar

* 注意:getInstance是静态方法,所以可以直接使用类名调用

* */

//创建Calendar对象

Calendar today = Calendar.getInstance();

//System.out.println(today);

//输出时间的具体信息:java.util.GregorianCalendar[time=1430445161507,

//areFieldsSet=true,…… YEAR=2015,MONTH=4,WEEK_OF_YEAR=18, ……]

/*

* 方法:public final void setTime(Date date)

* 功能:根据给定的时间设置Calendar对象

* 参数:Date

* 返回值:void

* */

//根据给定时间设置Calendar对象

Date date = new Date(2001-1900,2,13);//不建议使用Date的该带参构造方法

today.setTime(date);//设置指定时间

//System.out.println(today);//……time=984412800000……YEAR=2001……

//初始化Calendar对象(一般用于重置时间时)

today.setTime(new Date());

//System.out.println(today);//……YEAR=2015,MONTH=4,WEEK_OF_YEAR=18……

/*

* 除了使用Date类型,也可以直接使用Calendar中的set方法设置指定时间

* -----------------------------------------------------

* 方法:public final void set(int year,int month,int date,

* int hourOfDay,int minute)

* 功能:设置Calendar对象的年月日时分

* 返回值:void

* ------------------------------------------------------

* 方法:public final void set(int year,int month,int date)

* 功能:设置Calendar对象的年月日

* 返回值:void

* -------------------------------------------------------

* 方法:public void set(int field,int value)

* 功能:设置时间中指定的某个字段

* 参数:int field 指定的字段

* int value 指定字段值

* 返回:void

* ------------------------------------------------------

* 参数field代表要设置的字段的类型,常见类型如下:

* Calendar.YEAR——年份

* Calendar.MONTH——月份(月份从0开始, 实际月份显示要加1)

* Calendar.DATE——日期

* Calendar.DAY_OF_MONTH——日期,和上面的字段完全相同

* Calendar.HOUR——12小时制的小时数

* Calendar.HOUR_OF_DAY——24小时制的小时数

* Calendar.MINUTE——分钟

* Calendar.SECOND——秒

* Calendar.DAY_OF_WEEK——星期(周日是1,周一是2,周二是3……)

* */

today.set(Calendar.YEAR, 2009);

today.set(Calendar.MONTH, 10);

//System.out.println(today);

//输出:……YEAR=2009,MONTH=10……

today.setTime(new Date());

/*

* 方法:public int get(int field)

* 功能:获取指定字段的值

* 参数:int field 指定字段

* 返回:int 获取的字段值

* */

int year = today.get(Calendar.YEAR); //显示年份

int month = today.get(Calendar.MONTH) + 1; //显示月份

int day = today.get(Calendar.DATE); //显示日期

System.out.println("具体日期是"+year+"-"+month+"-"+day); //具体日期是2015-5-1

//本月第N天,和Calendar.DATE一样

int day_of_month = today.get(Calendar.DAY_OF_MONTH);

System.out.println(day_of_month);//1

//今年第N天

int day_of_year = today.get(Calendar.DAY_OF_YEAR);

System.out.println(day_of_year);//121

//获取星期

int day_of_week = today.get(Calendar.DAY_OF_WEEK);

System.out.println(day_of_week);//6,实际为星期五

/*

* 方法:public abstract void add(int field,int amount)

* 功能:在Calendar对象中的某个字段上增加或减少一定的数值

* 参数:int field 需要修改的字段值

* int amount 添加或减少的数值

* */

//5分钟以前

today.add(Calendar.MINUTE,-5);

int min5 = today.get(Calendar.MINUTE);

System.out.println(min5);

//计算当前时间30天以后的日期

today.add(Calendar.DATE,30);

//在日期字段上修改,类内部会重新计算该日期对象中其它各字段的值

int y = today.get(Calendar.YEAR);

int m = today.get(Calendar.MONTH)+1;

int d = today.get(Calendar.DATE);

System.out.println(y+"-"+m+"-"+d);

/*

* 方法:public boolean after(Object when)

* 功能:判断当前日期对象是否在when对象的后面

* 参数:Object when 指定的日期

* 返回值:boolean

* true 当前日期在指定日期之后

* false 当前日期在指定日期之前

* --------------------------------------

* 方法:public boolean before(Object when)

* 功能:判断当前日期对象是否在when对象之前

* 参数:Object when 指定的日期

* 返回值:boolean

* */

Calendar before = Calendar.getInstance();

before.set(2015,1,1);

System.out.println(today.after(before));//true

System.out.println(today.before(before));//false

/*

* 方法:public int compareTo(Calendar anotherCalendar)

* 功能:比较两个Calendar对象(可用于比较时间)

* 参数:Calendar anotherCalendar

* 返回值:int

* 0 Calendar == anotherCalendar

* -1 Calendar < anotherCalendar

* 1 Calendar > anotherCalendar

* */

//今天和之前相比

System.out.println(today.compareTo(before));//1

//今天和今天相比

System.out.println(today.compareTo(today));//0

/*

* Calendar对象和相对时间之间的转化:Calendar <--> long

* --------------------------------------------

* 方法:public long getTimeInMillis()

* 功能:将Calendar对象转化成long型

* 参数:无

* 返回值:long

* --------------------------------------------

* 方法:public void setTimeInMillis(long millis)

* 功能:将long型转化成Calendar对象

* 参数:long millis 毫秒数

* 返回值:void

* */

//计算today和before两个日期之间相差的天数

//将Calendar对象转化成相对时间

long todayMillis = today.getTimeInMillis();

long beforeMillis = before.getTimeInMillis();

long days = (todayMillis - beforeMillis)/(24 * 60 * 60 * 1000);

System.out.println(days);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: