使用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

 

posted @ 2023-01-31 16:43  见仙于毫末  Views(1581)  Comments(0Edit  收藏  举报
TOP