Java计算X天后和X月后日期的方法
import java.text.SimpleDateFormat;import java.util.Date;public class OfterDate {/** * 计算X天后的日期(天数不要大于28) * * @param x * @return */public static String ofterDayDate(int x) {Date date = new Date();int year = Integer.parseInt(new SimpleDateFormat("yyyy").format(date));int month = Integer.parseInt(new SimpleDateFormat("MM").format(date));int day = Integer.parseInt(new SimpleDateFormat("dd").format(date)) + x;if (day > 30 && (month == 4 || month == 6 || month == 9 || month == 11)) {day = day - 30;if (month == 12) {month = 1;year = year + 1;} else {month = month + 1;}} else if (day > 31&& (month == 1 || month == 3 || month == 5 || month == 7|| month == 8 || month == 10 || month == 12)) {day = day - 31;if (month == 12) {month = 1;year = year + 1;} else {month = month + 1;}} else if (month == 2) {if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {if (day > 29) {day = day - 29;month = 3;}} else {if (day > 28) {day = day - 28;month = 3;}}}String y = year + "-";String m = "";String d = "";if (month < 10)m = "0" + month + "-";elsem = month + "-";if (day < 10)d = "0" + day;elsed = day + "";return y + m + d;}/** * 计算x月后的日期 * * @param x * @return */public static String ofterMonthDate(int x) {Date date = new Date();int year = Integer.parseInt(new SimpleDateFormat("yyyy").format(date));int month = Integer.parseInt(new SimpleDateFormat("MM").format(date))+ x;int day = Integer.parseInt(new SimpleDateFormat("dd").format(date));if (month > 12) {year += month/12;month = month%12;}if (day > 28) {if (month == 2) {if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {day = 29;} elseday = 28;} else if ((month == 4 || month == 6 || month == 9 || month == 11)&& day == 31) {day = 30;}}String y = year + "-";String m = "";String d = "";if (month < 10)m = "0" + month + "-";elsem = month + "-";if (day < 10)d = "0" + day;elsed = day + "";return y + m + d;}}