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