package com.ydtech.modules.partner.utils; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.temporal.ChronoUnit; import java.util.Date; public class PartnerDateUtils { public static boolean isWithinDays(Date date, int days) { LocalDate targetDate = date.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDate(); return Math.abs(ChronoUnit.DAYS.between(LocalDate.now(), targetDate)) <= days; } public static Date addDaysToday(Date date, int days) { LocalDateTime localDate = date.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime(); LocalDateTime newLocalDate = localDate.plusDays(days); LocalDateTime newDateTime = newLocalDate.withHour(0) .withMinute(0) .withSecond(0) .withNano(0); return Date.from(newDateTime.atZone(ZoneId.systemDefault()).toInstant()); } public static Date addDays(Date date, int days) { LocalDateTime localDate = date.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime(); LocalDateTime newLocalDate = localDate.plusDays(days); LocalDateTime endOfDay = newLocalDate.withHour(23) .withMinute(59) .withSecond(59) .withNano(999_999_999); return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()); } /** * 目标日期在今天之后 * @param date * @return */ public static boolean isAfter(Date date){ LocalDateTime localDate = date.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime(); return localDate.isAfter(LocalDateTime.now()); } /** * 目标日期在今天之前 * @param date * @return */ public static boolean isBefore(Date date){ LocalDateTime localDate = date.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime(); return localDate.isBefore(LocalDateTime.now()); } /** * 描述: 计算两个日期之间的天数 * @param date * @return */ public static Long dateDifference(Date date){ LocalDate pastLocalDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); return ChronoUnit.DAYS.between(pastLocalDate, LocalDate.now()); } public static boolean isSameDay(Date date) { LocalDate currentDate = LocalDate.now(); LocalDate compareLocalDate = date.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDate(); return currentDate.equals(compareLocalDate.plusDays(1)); } }