LocalDate计算两个日期间距离

1、LocalDate提供了until()方法,计算了两个日期之间的年、月和日的周期

例如: from {@code 2017-08-28} to {@code 2018-09-30} is "1 year, 1 months and 2 days"

示例代码:

LocalDate localDate1 = LocalDate.parse("2017-08-28");
LocalDate LocalDate2 = LocalDate.parse("2018-09-30");
int years = localDate1.until(LocalDate2).getYears();
int months = localDate1.until(LocalDate2).getMonths();
int days = localDate1.until(LocalDate2).getDays();
System.out.println("间隔:"+years + " years," + months + " months and " + days + " days");

这种计算场景适合于计算某两个日期间的完整间隔时间,比如两日期间间隔的几年几个月零几天,但是如果就计算两个日期间间隔多少天,使用date1.until(date2).getDays()就不适合了,如果是第二种,则下面的方法适合。

2、LocalDate提供了until(Temporal endExclusive, TemporalUnit unit),计算两个日期间距离:

时间计算的维度在{@link ChronoUnit}中实现,The units {@code DAYS}, {@code WEEKS}, {@code MONTHS}, {@code YEARS}, {@code DECADES}, {@code CENTURIES}, {@code MILLENNIA} and {@code ERAS}  are supported;

示例代码:

LocalDate start = LocalDate.parse("2018-08-28");
LocalDate end = LocalDate.parse("2018-09-30");
long year = start.until(end, ChronoUnit.YEARS);
long month = start.until(end, ChronoUnit.MONTHS);
long days = start.until(end, ChronoUnit.DAYS);
System.out.println("间隔:" + year + "年");
System.out.println("间隔:" + month + "月");
System.out.println("间隔:" + days + "天");

运行结果:

间隔:0年
间隔:1月
间隔:33天

你可能感兴趣的:(java基础)