public final static Date addMonths(final Date date, final Integer noOfMonths) { Calendar orgCal = GregorianCalendar.getInstance(); orgCal.setTime(date); Calendar newCal = GregorianCalendar.getInstance(); newCal.setTime(date); newCal.set(Calendar.DAY_OF_MONTH, 1); int year = orgCal.get(Calendar.YEAR); int month = orgCal.get(Calendar.MONTH) + 1; // Calculate no. of month and no. of year should be added int years_to_add = noOfMonths / 12; int months_to_add = noOfMonths - 12 * years_to_add; year += years_to_add; month += months_to_add; if (month > 12) { month -= 12; year++; } else if (month < 1) { month += 12; year--; } // Set the year and month newCal.set(Calendar.YEAR, year); newCal.set(Calendar.MONTH, month - 1); // The input date is last date of month if (date.equals(lastDate(date))) { newCal.set(Calendar.DAY_OF_MONTH, newCal .getActualMaximum(Calendar.DAY_OF_MONTH)); } else if (newCal.getActualMaximum(Calendar.DAY_OF_MONTH) < orgCal .get(Calendar.DAY_OF_MONTH)) newCal.set(Calendar.DAY_OF_MONTH, newCal .getActualMaximum(Calendar.DAY_OF_MONTH)); else newCal .set(Calendar.DAY_OF_MONTH, orgCal .get(Calendar.DAY_OF_MONTH)); Date result = newCal.getTime(); orgCal = null; newCal = null; return result; }
Jave获取当前日期的上一个月最后一天或者下一个月最后一天
猜你喜欢
转载自aniyo.iteye.com/blog/2356020
今日推荐
周排行