JAVA输出日期的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 13:00:52
cal.add(Calendar.DAY_OF_YEAR, 100);
cal.add(Calendar.DAY_OF_MONTH, 100);

都能算出100天以后的日期,我没有发现有什么不同.
谁能告诉我这有什么不同?

不是很精通,大盖说下理解吧,第一个函数在计数时是以年作结算单位,就是说满一年了记一次,不满的记天;第二个函数是以月为结算单位的,基本原理与第一个相同,计算比较短的时间计量时没有区别,但在计算比较大的时间计量时就有区别了,没记错的话好象是推荐使用第一个函数计算比较大的计算,原因应该是考虑系统资源的占用吧,好象是第一个函数占用的比较少。

DAY_OF_YEAR, 指示当前年中的天数。一年中第一天的值为 1。
DAY_OF_MONTH 指示一个月中的某天。一个月中第一天的值为 1。

Calendar.DAY_OF_YEAR 返回当前日期是一年中的第几天.加上参数就是当前日期+100天

DAY_OF_MONTH 返回当前日期是一个月中的第几天.加上参数就是当前日期+100

主要就是年的第几天和月的第几天之间的区别

Calendar.DAY_OF_YEAR 是一年中的第100天,
Calendar.DAY_OF_MONTH 是一个月中的第100天,
那么,如果在1月份的话,结果就是一样的

这是它的一个实现,从代码中就可以看到,对待着两个参数的处理方式是一样的
/**
* Adds the specified (signed) amount of time to the given calendar field,
* based on the calendar's rules.
*
* <p><em>Add rule 1</em>. The value of <code>field</code>
* after the call minus the value of <code>field</code> before the
* call is <code>amount</code>, modulo any overflow that has occurred in
*