int getDays(int year, int month){
  int[] days = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  return (year % 4 == 0 && (year % 100 =! 0 || year % 400 == 0) && month == 2)
    ? days[month]+1 : days[month];
}

解决方案 »

  1.   

    这只是在一定条件下成立,如果year在几个世纪之前,由于历史上的一些问题,一个月里的天数并不是这样的。但在现在的一般应用系统里是没错的
      

  2.   

    newpy(想飞的菜鸟): 我建议你还是找本java的入门书看看吧,
    return 返回的是个条件表达式,括号中的条件为真时返回后面分号前面的值,为假时返回后面的。
      

  3.   

    public int maxDayOfMonth(int year, int month)
        {
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.YEAR, year);
            calendar.set(Calendar.MONTH, month - 1);
            return calendar.getMaximum(Calendar.DAY_OF_MONTH);
        }
    year在几个世纪之前? 有这个必要吗?