From ad6aee2554888bce24517613e56420486ed091cd Mon Sep 17 00:00:00 2001 From: panda Date: Fri, 23 Jun 2023 11:39:46 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90U=E3=80=91=E5=A2=9E=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/easysite/commons/utils/DateUtils.java | 67 ++++++++++++++++++- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/easy-commons/src/main/java/cn/org/easysite/commons/utils/DateUtils.java b/easy-commons/src/main/java/cn/org/easysite/commons/utils/DateUtils.java index 974b135..f45fb02 100644 --- a/easy-commons/src/main/java/cn/org/easysite/commons/utils/DateUtils.java +++ b/easy-commons/src/main/java/cn/org/easysite/commons/utils/DateUtils.java @@ -1,8 +1,7 @@ package cn.org.easysite.commons.utils; import java.text.SimpleDateFormat; -import java.time.LocalDateTime; -import java.time.ZoneOffset; +import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.Calendar; @@ -175,4 +174,68 @@ public final class DateUtils { calendar.setTime(new Date()); return calendar.get(Calendar.MINUTE); } + + /** + * 计算相差天数 + */ + public static int differentDaysByMillisecond(Date date1, Date date2) + { + return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); + } + + /** + * 计算日期相差天数 + * @param date1 + * @param date2 + * @return + */ + public static int diffDays(Date date1, Date date2) { + date1 = getMinOfDay(date1); + date2 = getMinOfDay(date2); + return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); + } + + public static Date getMinOfDay(Date date) { + if (date == null) { + date = new Date(); + } + LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault()); + LocalDateTime startOfDay = localDateTime.with(LocalTime.MIN); + return Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant()); + } + + public static Date getMaxOfDay(Date date) { + if (date == null) { + date = new Date(); + } + LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault());; + LocalDateTime endOfDay = localDateTime.with(LocalTime.MAX); + return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()); + } + + public static Date getMinOfCurrentMonth() { + Calendar cale = Calendar.getInstance(); + cale.add(Calendar.MONTH, 0); + cale.set(Calendar.DAY_OF_MONTH, 1); + return getMinOfDay(cale.getTime()); + } + + public static Date getMaxOfCurrentMonth() { + Calendar cale = Calendar.getInstance(); + cale.add(Calendar.MONTH, 1); + cale.set(Calendar.DAY_OF_MONTH, 0); + return getMinOfDay(cale.getTime()); + } + + /** + * 在活动之间 + * @param date + * @param startDate + * @param endDate + * @return + */ + public static boolean between(Date date, Date startDate, Date endDate) { + return date.getTime() >= startDate.getTime() && date.getTime() <= endDate.getTime(); + } + }