笨方法一个:
**-----------------------------------------**  //平年每个月的天数
  private int[] ping_nian = new int[] {
      31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};  //闰年每个月的天数
  private int[] run_nian = new int[] {
      31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};  //计算某个月有几天
  protected int maxDayOfMonth(Date now) {
    int maxDayOfMonth; //该月有几天
    GregorianCalendar cal = new GregorianCalendar(); //定义日历对象cal
    cal.setTime(now);
    //判断日期cal的年份是否是闰年
    boolean isleapyear = cal.isLeapYear(cal.get(Calendar.YEAR));
    maxDayOfMonth = isleapyear ? (run_nian[cal.get(Calendar.MONTH)]) :
        (ping_nian[cal.get(Calendar.MONTH)]); //计算该日期所在月份的天数    return maxDayOfMonth;
  }