JAVA:int month = calendar.get(Calendar.MONTH)+1;为何要加1?
2013-11-04 18:22
260 查看
MONTH加1的原因: public static final int MONTH 指示月份的 get 和 set 的字段数字。这是一个特定于日历的值。在格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0;最后一个月取决于一年中的月份数。 简单来说,因为这个值的初始值是0,因此我们要用它来表示正确的月份时就需要加1。
WEEK减1的原因: public static final int DAY_OF_WEEK get 和 set 的字段数字,指示一个星期中的某天。该字段可取的值为 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY 观察代码,你会发现其实week是用来确定随后的字符串week1该如何截取的,我们知道DAY_OF_WEEK是获取当前日期是一周中的第几天,而一周从周日算起,因此当我们取得这个值之后,为了要正确的截取出随后的字符串week1中的那个中文字符,因此它需要减1来达到目的。你只要跟踪一下程序运行,观察变量的赋值就会理解它这样编写的用意了。
定义day时不用的原因: public static final int DATE get 和 set 的字段数字,指示一个月中的某天。它与 DAY_OF_MONTH 是同义词。一个月中第一天的值为 1。
相关文章推荐
- JAVA:int month = n.get(Calendar.MONTH)+1;为何要加1?
- 遇到的问题----java中获取当前月份c.get(Calendar.MONTH)中月份少一个月
- 遇到的问题----java中获取当前月份c.get(Calendar.MONTH)中月份少一个月
- Java通过cal.get(Calendar.MONTH)比真实月份少了一个月
- 一个坑:java.sql.ResultSet.getInt==》the column value; if the value is SQL NULL, the value returned is 0
- java中byte转换int时为何与0xff进行与运算
- Java 反射机制 .class .getClass() Class.forName("") .TYPE int void
- Andrdoi 如何获得某个月份最后一天(或号数最大那天)的号数?--使用getActualMaximum(Calendar.DAY_OF_MONTH)!
- java中byte转换int时为何与0xff进行与运算
- java中byte转换int时为何与0xff进行与运算
- java理解int转float为何会可能精度丢失的问题
- Method public java.lang.String org.hibernate.exception.NestableRuntimeException.getMessage(int
- 【JAVA基础】java中byte转换int时为何与0xff进行与运算
- java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getImportant
- java中byte转换int时为何与0xff进行与运算
- java中byte转换int时为何与0xff进行与运算
- java中byte转换int时为何与0xff进行与运算
- java.lang.NoClassDefFoundError: org/apache/xerces/jaxp/datatype/XMLGregorianCalendarImpl$DaysInMonth
- java中byte转换int时为何与0xff进行与运算
- java中byte转换int时为何与0xff进行与运算