localdatetime比较2个日期相差的天数
localdatetime比较2个日期相差的天数
package com.example.core.mydemo.date; import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.temporal.ChronoUnit; /** * output: * 天数差1: 4 * 天数差2: 4 * now=2025-05-13T14:07:31.173 * after=2025-06-01T14:07:31.173 * 相差天数=19 */ public class BetweenDaysTest { public static void main(String[] args) { LocalDateTime dateTime1 = LocalDateTime.of(2023, 1, 1, 0, 0); // 第一个日期时间点 LocalDateTime dateTime2 = LocalDateTime.of(2023, 1, 5, 0, 0); // 第二个日期时间点 LocalDate date1 = dateTime1.toLocalDate(); // 只取日期部分,忽略时间部分,因为天数差不需要考虑时间。 LocalDate date2 = dateTime2.toLocalDate(); // 只取日期部分,忽略时间部分,因为天数差不需要考虑时间。 long daysBetween = ChronoUnit.DAYS.between(date1, date2); // 使用ChronoUnit计算天数差。 System.out.println("天数差1: " + daysBetween); // 输出天数差。 Duration duration = Duration.between(dateTime1, dateTime2); // 获取持续时间差。 long days = duration.toDays(); // 转换为天。注意这会包括整天和整天以下的部分,如果要得到整天差,可以使用下面的方法。 System.out.println("天数差2: " + days); // 输出天数差。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以使用下面的方法。如果要得到整天差,可以直接使用ChronoUnit的方法来计算天数差异:如果只想获取整数天数的差异(不考虑小时、分钟等),则可以这样做:```javaint days = (int) ChronoUnit.DAYS.between(date1, date2); // 使用ChronoUnit获取整数天差异```这种方法直接返回两个日期之间的整数天数差异,不考虑时分秒等更小 //模拟代码 LocalDateTime now = LocalDateTime.now(); LocalDateTime after = now.plusDays(19); System.out.println("now=" + now); System.out.println("after=" + after); System.out.println("相差天数=" + getBetweenDays(now,after)); } public static long getBetweenDays(LocalDateTime startDateTime,LocalDateTime endDateTime){ long days = Duration.between(startDateTime, endDateTime).toDays(); return days; } public static long getBetweenMinutes(LocalDateTime startDateTime,LocalDateTime endDateTime){ long minutes = Duration.between(startDateTime, endDateTime).toMinutes(); return minutes; } public static long getBetweenMinutes(LocalTime startTime, LocalTime endTime){ long minutes = Duration.between(startTime, endTime).toMinutes(); return minutes; } }
package com.example.core.mydemo.java; import java.time.Duration; import java.time.LocalDateTime; /** * output: * now=2023-12-07T18:34:39.176 * 相差小时数=25 * 相差天数=1 */ public class DiffDateTime { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); System.out.println("now="+now); LocalDateTime dateTime = LocalDateTime.of(2023, 12, 8, 20, 0, 0); long hours = Duration.between(now, dateTime).toHours(); System.out.println("相差小时数="+hours); long day = Duration.between(now, dateTime).toDays(); System.out.println("相差天数="+day); } }