Просмотр исходного кода

工作台统计时间差计算

xucaiqin 2 лет назад
Родитель
Сommit
3bb03fa228

+ 158 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/utils/DateTimeUtil.java

@@ -0,0 +1,158 @@
+package com.sckw.payment.utils;
+
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * @description: 时间工具类
+ * @author: LengFaQiang
+ * @copyright
+ * @create: 2022-01-27 16:04
+ **/
+public class DateTimeUtil {
+    public static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";
+    public static final DateTimeFormatter YYYY_MM_DD_HH_MM_SS = DateTimeFormatter.ofPattern(DEFAULT_PATTERN);
+    public static final DateTimeFormatter YYYYMMDDHHMMSS = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+    public static final DateTimeFormatter YYYY_MM_DD = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+    public static final DateTimeFormatter HH_MM_SS = DateTimeFormatter.ofPattern("HH:mm:ss");
+    
+
+
+    /**
+     * 当前时间的前一个星期
+     *
+     * @return
+     */
+    public static String format(LocalDateTime localDateTime) {
+        return YYYY_MM_DD_HH_MM_SS.format(localDateTime);
+    }
+
+    /**
+     * 从当前日期计算月数差
+     *
+     * @param months 加或减的月数
+     * @return LocalDate
+     */
+    public static LocalDate getComputeMonth(long months) {
+        return getComputeMonth(LocalDate.now(), months);
+    }
+
+    /**
+     * 从给定的日期计算月数差
+     *
+     * @param months    加或减的月数
+     * @param localDate 给定的日期
+     * @return LocalDate
+     */
+    public static LocalDate getComputeMonth(LocalDate localDate, long months) {
+        return localDate.plusMonths(months);
+    }
+
+    /**
+     * 从给定的日期时间计算月数差
+     *
+     * @param months        加或减的月数
+     * @param localDateTime 给定的日期时间
+     * @return LocalDate
+     */
+    public static LocalDateTime getComputeMonth(LocalDateTime localDateTime, long months) {
+        return localDateTime.plusMonths(months);
+    }
+
+
+    /**
+     * 从当前日期计算月数差
+     *
+     * @param months 加或减的月数
+     * @param offset 偏移的天数 ±1
+     * @return LocalDateTime,时间最小值
+     */
+    public static LocalDateTime getComputeMonthStart(long months, long offset) {
+        return LocalDateTime.of(getComputeMonth(months), LocalTime.MIN).plusDays(offset);
+    }
+
+    /**
+     * 从当前日期计算月数差
+     *
+     * @param months 加或减的月数
+     * @param offset 偏移的天数 ±1
+     * @return LocalDateTime,时间最大值
+     */
+    public static LocalDateTime getComputeMonthEnd(long months, long offset) {
+        return LocalDateTime.of(getComputeMonth(months), LocalTime.MAX).plusDays(offset);
+    }
+
+    /**
+     * 从当前时间,计算天数差
+     *
+     * @param days 加或减的天数
+     * @return LocalDate
+     */
+    public static LocalDate getComputeDays(long days) {
+        return getComputeDays(LocalDate.now(), days);
+    }
+
+    /**
+     * 从给定的日期计算天数差
+     *
+     * @param days      加或减的天数
+     * @param localDate 给定的日期
+     * @return LocalDate
+     */
+    public static LocalDate getComputeDays(LocalDate localDate, long days) {
+        return localDate.plusDays(days);
+    }
+
+    /**
+     * 从给定日期时间计算天数差
+     *
+     * @param days          加或减的天数
+     * @param localDateTime 给定的日期时间
+     * @return LocalDate
+     */
+    public static LocalDateTime getComputeDays(LocalDateTime localDateTime, long days) {
+        return localDateTime.plusDays(days);
+    }
+
+
+    /**
+     * 从当前时间,计算天数差
+     *
+     * @param days 加或减的天数
+     * @return LocalDateTime,时间最小值
+     */
+    public static LocalDateTime getComputeDaysStart(long days) {
+        return LocalDateTime.of(getComputeDays(days), LocalTime.MIN);
+    }
+
+    /**
+     * 从当前时间,计算天数差
+     *
+     * @param days 加或减的天数
+     * @return LocalDateTime,时间最大值
+     */
+    public static LocalDateTime getComputeDaysEnd(long days) {
+        return LocalDateTime.of(getComputeDays(days), LocalTime.MAX);
+    }
+
+    /**
+     * 今天开始时间
+     *
+     * @return LocalDateTime yyyy-MM-dd 00:00:00
+     */
+    public static LocalDateTime todayStart() {
+        return LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
+    }
+
+    /**
+     * 今天结束时间
+     *
+     * @return LocalDateTime yyyy-MM-dd 23:59:59
+     */
+    public static LocalDateTime todayEnd() {
+        return LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
+    }
+}