import java.text.ParseException
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Date
import java.util.Scanner
public class Test {
public static void main(String[] args) {
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd")
System.out.println("请输入日期。如2017-11-01")
Scanner scan = new Scanner(System.in)
String read = scan.nextLine()
Date date = formatter.parse(read)
System.out.println("退后一天日期为:" + formatter.format(addDateOneDay(date)))
} catch (ParseException e) {
// TODO Auto-generated catch block
// e.printStackTrace()
System.out.println("录入错误,程序结束!")
}
}
public static Date addDateOneDay(Date date) {
if (null == date) {
return date
}
Calendar c = Calendar.getInstance()
c.setTime(date) // 设置当前日期
c.add(Calendar.DATE, 1) // 日期加1天
date = c.getTime()
return date
}
}
获取最后一天的时间,就用Calendar这个类的方法,这个方法会自动判断闰年问题的,api是根据日历来写的,代码如下:public static void main(String[] args) {
// 获取Calendar
Calendar calendar = Calendar.getInstance()
// 设置时间,当前时间不用设置
// calendar.setTime(new Date())
// 设置日期为本月最大日期
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE))
// 打印
DateFormat format = new SimpleDateFormat("yyyy-MM-dd")
System.out.println(format.format(calendar.getTime()))
}
用Calendar就能结决你的问题,代码如下:import java.util.Calendar
import java.util.Date
public class Data {
public static void main(String[] args) {
Calendar a=Calendar.getInstance()
a.set(Calendar.DATE, 1)//把日期设置为当月第一天
a.roll(Calendar.DATE, -1)//日期回滚一天,也就是最后一天
int MaxDate=a.get(Calendar.DATE)
System.out.println("该月最大天数:"+MaxDate)
}
}
ps:你也可以自己改改把月份设定为自己想要的那个月