如2018-1-31月份加一 如何变成2018-2-28号

1.传入一个日期和指定一个月份,具体方法如下:

public static String getNextMonthDayLast (String starDate,int i) {

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

try {

Date date = sdf.parse(starDate);

Calendar cal = Calendar.getInstance();

cal.setTime(date);

String nextMonth = getNextMonth(i);

int daysOfMonth = getDaysOfMonth (nextMonth);

String nextDate = "";

if(cal.get(Calendar.DAY_OF_MONTH)>=daysOfMonth){

 nextDate = nextMonth+"-"+daysOfMonth;

} else {

 nextDate = nextMonth+"-"+cal.get(Calendar.DAY_OF_MONTH);

}

return nextDate;

} catch (Exception e) {

 e.printStackTrace();

}

return null;

}

public static String getNextMonth (int i) {

Calendar cal = Calendar.getInstance();

cal.add(cal.MONTH,i);

SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM");

String preMonth = dft.format(cal.getTime());

return preMonth;

}

public static int getDaysOfMonth (String date) {

 SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM");

Calendar calendar = Calendar.getInstance();

try {

 calendar.setTime(dft.parse(date));

} catch (Exception e) {

 e.printStackTrace();

return 0;

}

return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

}

如传入

猜你喜欢

转载自blog.csdn.net/huxiaodong1994/article/details/79213252
今日推荐