public static void main(String[] args) throws Exception {
String startStr = "2019-08-15"; //开始日期
String endStr = "2019-10-03";//结束日期
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = sf.parse(startStr);
Date endDate = sf.parse(endStr);
Integer startYear=Integer.valueOf(String.format("%tY", startDate));
Integer startMon=Integer.valueOf(String .format("%tm", startDate));
Integer startDay=Integer.valueOf(String .format("%td", startDate));
Integer endYear=Integer.valueOf(String.format("%tY", endDate));
Integer endMonth=Integer.valueOf(String .format("%tm", endDate));
Integer endDay=Integer.valueOf(String .format("%td", endDate));
LocalDate start = LocalDate.of(startYear, startMon, startDay);
LocalDate end = LocalDate.of(endYear, endMonth, endDay);
System.out.println("相差年数: " + Period.between(start, end).getYears());
System.out.println("相差月数: " + Period.between(start, end).getMonths());
System.out.println("相差天数: " + Period.between(start, end).getDays());
//计算开始日期到本月月末的天数
LocalDate lastday = start.with(TemporalAdjusters.lastDayOfMonth());
System.out.println("本月最后一天 " + lastday);
//计算相差天数
Period between = Period.between(start, lastday);
System.out.println("开始日期: " + start);
System.out.println("结束日期: " + lastday);
System.out.println("days: " + between.getDays());
}
执行结果: