calendar类(calendar类是一个抽象类,不可以被实例化)

http://www.itjxue.com  2023-01-27 01:21  来源:未知  点击次数: 

JAVA中Calendar类getActualMaximum()方法的使用是什么?

你查一下API Calendar的getActualMaximum(int field)他传入的是一个int类型,这个方法的具体意思就是说根据你传入的参数代表的意思(年、月、周等)查询当前(年、月、周)拥有的最大值。

如果是年就查询这一年中的天数,如果月份就查询当前月中的天数,如果是周就查询当前周的天数

这个int类型在Calendar中是一个常量定义的,他们分别是

public static final int ERA = 0;

public static final int YEAR = 1;

public static final int MONTH = 2;

public static final int WEEK_OF_YEAR = 3;

public static final int WEEK_OF_MONTH = 4;

public static final int DATE = 5;

public static final int DAY_OF_MONTH = 5;

public static final int DAY_OF_YEAR = 6;

public static final int DAY_OF_WEEK = 7;

你可以看到5就是DATE,所以给方法传入Calendar.DATE和5的时候返回的值是一样的。

set(Calendar.DATE,1)这种写法是什么意思,是改变DATE的值么?

这个并不是说改变DATE本身的值,他是final类型的 你说可以改变么?

这个意思是说把日历日期设置为当前月的第一天,如果你的日历日期是2013-07-11的话 那么当你set(Calendar.DATE,1)之后日历日期就变成了2013-07-01,顺便跟你说一声日历日期也就是你c.set()这个方法设置的;一般是传一个Date对象进去。

Java中日历类(CalendarClass)的用途?

Java中日历类(Calendar类)的用途如下:

Calendar类的静态方法getInstance()可以初始化一个日历对象:Calendar now = ????????Calendar.getInstance(); ? ?

可以使用下面三个方法把日历定到任何一个时间:

?????set(int?year?,int?month,int?date)??;

?????set(int?year?,int?month,int?date,int?hour,int?minute)?;

?????set(int?year?,int?month,int?date,int?hour,int?minute,int?second)?;

如果想获得年份、月份、小时等信息可以使用: ?

??????Now.get(Calendar.Month);//这样的方法?0表示一月,1表示二月??

?????get(Calendar.DAY_OF_MONTH);//获得这个月的第几天

?????get(Calendar.DAY_OF_WEEK);//获得这个星期的第几天?

?????get(Calendar.DAY_OF_YEAR);//获得这个年的第几天??

???????getTimeMillis();//获得当前时间的毫秒表示

1.计算某一月份的最大天数

????Calendar?time=Calendar.getInstance();?

????time.clear();?

????time.set(Calendar.YEAR,year);?

????time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0?????????????

????int?day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数

????注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间

????2.Calendar和Date的转化

????(1) Calendar转化为Date

????Calendar?cal=Calendar.getInstance();

????Date?date=cal.getTime();

????(2) Date转化为Calendar

????Date?date=new?Date();

????Calendar?cal=Calendar.getInstance();

????cal.setTime(date);

????3.格式化输出日期时间

????Date?date=new?Date();

????SimpleDateFormat?df=new?SimpleDateFormat("yyyy-MM-dd?hh:mm:ss");

????System.out.println(df.format(date));

4.计算相隔天数的方法

????public?int?getDaysBetween?(Calendar?d1,?Calendar?d2){

??????if?(d1.after(d2)){??//?swap?dates?so?that?d1?is?start?and?d2?is?end

???????????java.util.Calendar?swap?=?d1;

???????????d1?=?d2;

???????????d2?=?swap;

??????}

??????int?days?=?d2.get(Calendar.DAY_OF_YEAR)?-?d1.get(Calendar.DAY_OF_YEAR);

??????int?y2?=?d2.get(Calendar.YEAR);

?????if?(d1.get(Calendar.YEAR)?!=?y2){

???????????d1?=?(Calendar)?d1.clone();

???????????do{

?????????????days?+=?d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到当年的实际天数

???????????????d1.add(Calendar.YEAR,?1);

??????????}?while?(d1.get(Calendar.YEAR)?!=?y2);

??????}

???????return?days;

????}

Calendar类如何创建对象 为什么?

一般是这样给Calendar类创建对象的:

Calendar

cal

=

Calendar.getInstance();

这是因为Calendar类的构造函数是protected,不能直接调用

而Calendar类中的getInstance方法却是静态的,可以通过类名直接引用

用上面方法创建出来的Calendar是包含了默认的语言和时区的,想要给calendar赋值可以这样:

Data

date

=

new

Date();

cal.setTime(date);

java中GregorianCalendar类与Calendar类的关系与区别?

类 Calendar

java.lang.Object

java.util.Calendar

所有已实现的接口:

Serializable, Cloneable, ComparableCalendar

直接已知子类:

GregorianCalendar

--------------------------------------------------------------------------------

public abstract class Calendarextends Objectimplements Serializable, Cloneable, ComparableCalendarCalendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected。

与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:

Calendar rightNow = Calendar.getInstance();

Calendar 对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值,例如,日语-格里高里历,日语-传统日历。Calendar 定义了某些日历字段返回值的范围,以及这些值的含义。例如,对于所有日历,日历系统第一个月的值是 MONTH == JANUARY。其他值是由具体子类(例如 ERA)定义的。有关此内容的细节,请参阅每个字段的文档和子类文档。

我建议你下个jdk的帮助文档哦。这样的问题你以后要学着去查帮助文档解决。

(责任编辑:IT教学网)

更多

推荐其他WEB语言文章