From 1b2f1eb44d9f0de6b9238cfe314988a95c87344a Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 02 四月 2026 13:37:15 +0800
Subject: [PATCH] 绩效管理:工时汇总对接MES数据&人员考勤调整
---
inspect-server/src/main/java/com/ruoyi/inspect/util/HourDiffCalculator.java | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/util/HourDiffCalculator.java b/inspect-server/src/main/java/com/ruoyi/inspect/util/HourDiffCalculator.java
index 687645e..425c559 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/util/HourDiffCalculator.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/util/HourDiffCalculator.java
@@ -2,6 +2,8 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.Objects;
import java.util.regex.Pattern;
@@ -39,6 +41,41 @@
return hourDiff.doubleValue();
}
+ public static void main(String[] args) {
+ System.out.println(getHourDiff("07:38","19:26"));
+ LocalDateTime localDateTime = LocalDateTime.of(2026, 3, 30, 7, 38);
+ LocalDateTime localDateTime2 = LocalDateTime.of(2026, 3, 30, 19, 26);
+ System.out.println(getTimeDifference(localDateTime,localDateTime2));
+ }
+
+ /**
+ * 璁$畻涓や釜鏃堕棿鐨勫樊鍊硷紝杩斿洖 澶�:鏃�:鍒�:绉掞紙姣忎綅涓や綅鏁帮紝鏀寔璺ㄥぉ锛�
+ * @param startTime 寮�濮嬫椂闂�
+ * @param endTime 缁撴潫鏃堕棿
+ * @return 鏍煎紡鍖栧悗鐨勬椂闂村樊锛堜緥锛�01澶� 01鏃� 30鍒� 05绉掞級
+ */
+ public static String getTimeDifference(LocalDateTime startTime, LocalDateTime endTime) {
+ // 1. 璁$畻涓や釜鏃堕棿鐨�**鎬绘绉掑樊**锛堢粷瀵瑰�硷紝閬垮厤鏃堕棿椤哄簭闂锛�
+ long totalMillis = Math.abs(ChronoUnit.MILLIS.between(startTime, endTime));
+
+ // 2. 瀹氫箟鏃堕棿鍗曚綅甯搁噺锛堟绉掞級
+ final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000; // 1澶�
+ final long MILLIS_PER_HOUR = 60 * 60 * 1000; // 1灏忔椂
+ final long MILLIS_PER_MINUTE = 60 * 1000; // 1鍒嗛挓
+ final long MILLIS_PER_SECOND = 1000; // 1绉�
+
+ // 3. 鎷嗗垎 澶┿�佹椂銆佸垎銆佺
+ long days = totalMillis / MILLIS_PER_DAY;
+ long remainingMillis = totalMillis % MILLIS_PER_DAY;
+ long hours = remainingMillis / MILLIS_PER_HOUR;
+ remainingMillis %= MILLIS_PER_HOUR;
+ long minutes = remainingMillis / MILLIS_PER_MINUTE;
+ long seconds = remainingMillis / MILLIS_PER_SECOND;
+
+ // 4. 鏍煎紡鍖栵細%02d = 鏁存暟琛ラ浂鍒颁袱浣嶆暟锛堟牳蹇冿紒婊¤冻绮剧‘鍒颁袱浣嶆暟瑕佹眰锛�
+ return String.format("%02d澶� %02d鏃� %02d鍒� %02d绉�", days, hours, minutes, seconds);
+ }
+
/**
* 鏍¢獙鏃堕棿鏍煎紡鏄惁涓篐H:mm
*/
--
Gitblit v1.9.3