首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java Calendar 使用中的一个不容易察觉异常

2012-09-13 
java Calendar 使用中的一个不容易察觉错误使用Calendar取某月最大天数时,犯了一个很隐蔽的错误:public st

java Calendar 使用中的一个不容易察觉错误

使用Calendar取某月最大天数时,犯了一个很隐蔽的错误:

  public static int getLastDayOfMonth(int year, int month) {    Calendar c = GregorianCalendar.getInstance();    c.set(Calendar.YEAR, year);    c.set(Calendar.MONTH, month - 1); // JAN. is 0    c.set(Calendar.DATE, 1);  // 必不可少    return c.getActualMaximum(Calendar.DAY_OF_MONTH);  }

?

少了
??? c.set(Calendar.DATE, 1);? // 必不可少
这一行后,如果执行代码时的日期是30号或31号,则返回31.
单元测试时很难发现,问题非常隐蔽,需小心.

同理,DAY_OF_WEEK,HOUR_OF_DAY 也有类似问题

热点排行