使用LocalDate计算两个日期之间的天数的多种实现方式
- 实现的方式有很多种,具体如下:
public class MainTest { public static void main(String[] args) { LocalDate startDate = LocalDate.of(2023, 1, 31); LocalDate endDate = LocalDate.of(2024, 11, 7); // 获取由两个日期之间的年数、月数和日数组成的期间 // 注:该期间的计算方法是删除完整的月份,然后计算剩余的天数 final Period days = Period.between(LocalDate.now(), endDate); System.out.println("days::" + days.get(ChronoUnit.DAYS)); // 以指定单位计算到另一个日期的时间 long until = startDate.until(endDate, ChronoUnit.DAYS); System.out.println("days::" + until); // 将此日期转换为大纪元日期再求差值 long day = endDate.toEpochDay() - startDate.toEpochDay(); System.out.println("days::" + day); // 获取表示两个时间对象之间的持续时间的持续时间 Duration duration = Duration.between(startDate.atStartOfDay(), endDate.atStartOfDay()); System.out.println("days::" + duration.toDays()); // 计算两个时间对象之间的时间量 long between = ChronoUnit.DAYS.between(startDate, endDate); System.out.println("days::" + between); } }
- 运行结果:
days::7 days::646 days::646 days::646 days::646