展开全部
这里建议用Calendar来完成,因为Calendar可以对日期进行计算。
代码写的比较丑,你再调整调整,俺程序员做的32313133353236313431303231363533e4b893e5b19e31333335326162不是很成功。
public static String getLastMonthDay(String data)
{
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");//设定日期
ParsePosition pos = new ParsePosition(0);
Calendar calendar=Calendar.getInstance();
calendar.setTime(formatter.parse(data,pos));
calendar.add(Calendar.MONTH, -1);//月份减1
int maxday=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//得到当前月份的最大日期
calendar.set(Calendar.DAY_OF_MONTH, maxday);
return formatter.format(calendar.getTime());
}
public static void main(String[] args)
{
System.out.println(getLastMonthDay("2014-05-03"));
System.out.println(getLastMonthDay("2013-05-03"));
System.out.println(getLastMonthDay("2014-03-01"));
}