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);
    }
}

 

posted on 2025-10-16 09:57  oktokeep  阅读(8)  评论(0)    收藏  举报