From 61bd1f27cb0f83890bfcd9aec6257eda13c0fc4d Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期二, 04 三月 2025 10:43:32 +0800 Subject: [PATCH] 看板周利用率,日利用率 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/DateUtils.java | 63 ++++++++++++++++++++++++++++++- 1 files changed, 61 insertions(+), 2 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/DateUtils.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/DateUtils.java index 2c31126..2021bb7 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/DateUtils.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/DateUtils.java @@ -1,8 +1,6 @@ package org.jeecg.modules.mdc.util; -import io.swagger.models.auth.In; - import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.ParseException; @@ -10,11 +8,14 @@ import java.time.DayOfWeek; import java.time.LocalDate; import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.time.format.TextStyle; import java.time.temporal.ChronoField; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.regex.Pattern; import java.util.stream.Collectors; +import java.util.stream.IntStream; import java.util.stream.Stream; public class DateUtils { @@ -1098,4 +1099,62 @@ return formattedHours + "灏忔椂" + formattedMinutes + "鍒�" + formattedSeconds + "绉�"; } + + + public static List<String[]> generateMonthlyDateRanges(String inputDate) { + List<String[]> dateRanges = new ArrayList<>(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); + + // 瑙f瀽浼犲叆鐨勬棩鏈� + LocalDate date = LocalDate.parse(inputDate, formatter); + + // 濡傛灉褰撳墠鏃ユ湡鏄�18鍙锋垨涔嬪墠锛岀粨鏉熸棩鏈熸槸涓婁釜鏈堢殑18鍙� + LocalDate endDate = date.getDayOfMonth() <= 18 + ? date.minusMonths(1).withDayOfMonth(18) + : date.withDayOfMonth(18); + + // 寰幆鐢熸垚12涓湀鐨勬棩鏈熻寖鍥� + for (int i = 0; i < 12; i++) { + // 寮�濮嬫棩鏈燂細涓婁笂涓湀鐨�19鍙� + LocalDate startDate = endDate.minusMonths(1).withDayOfMonth(19); + String startDateStr = startDate.format(formatter); + String endDateStr = endDate.format(formatter); + + // 鑾峰彇鏈堜唤鍚嶇О锛堝锛�2鏈堬級 + String monthName = endDate.getMonth().getDisplayName(TextStyle.FULL, Locale.CHINA); + + // 灏嗘棩鏈熻寖鍥村拰鏈堜唤鍚嶇О娣诲姞鍒伴泦鍚堜腑锛堝�掑簭鎻掑叆锛� + dateRanges.add(0, new String[]{startDateStr, endDateStr, monthName}); + + // 鍥為��鍒颁笂涓湀鐨�18鍙� + endDate = endDate.minusMonths(1).withDayOfMonth(18); + } + + return dateRanges; + } + + /** + * 鑾峰彇杩�7澶╂棩鏈� 鏍煎紡涓� yyyy-MM-dd + * @return + */ + public static List<String> getNearWeek() { + // 鑾峰彇浠婂ぉ鐨勬棩鏈� + LocalDate today = LocalDate.now(); + + // 瀹氫箟鏃ユ湡鏍煎紡鍖栧櫒 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(STR_DATE); + + // 鑾峰彇骞舵牸寮忓寲鍓嶄竷澶╃殑鏃ユ湡 + return IntStream.rangeClosed(1, 7) + .mapToObj(today::minusDays) + .sorted(LocalDate::compareTo) + .map(date -> date.format(formatter)) + .collect(Collectors.toList()); + + } + + + + + } -- Gitblit v1.9.3