From 6359429d47b9a066ed072ab28315d09fedf3f23f Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Fri, 30 May 2025 08:50:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=AE=E6=97=85=E6=8A=A5=E9=94=80=E5=8D=95?= =?UTF-8?q?=E6=89=A3=E9=99=A4=E9=A4=90=E8=A1=A5=E5=A4=A9=E6=95=B0=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/TriprAutoCalWorkingDaysPlugin.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TriprAutoCalWorkingDaysPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TriprAutoCalWorkingDaysPlugin.java index a1168a1..32033ee 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TriprAutoCalWorkingDaysPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TriprAutoCalWorkingDaysPlugin.java @@ -185,7 +185,7 @@ public class TriprAutoCalWorkingDaysPlugin extends AbstractBillPlugIn implements Date startdate = dynamicObject.getDate("startdate"); Date enddate = dynamicObject.getDate("enddate"); if(startdate!=null && enddate!=null){ - Set datesExcludingWeekends = getStartAndEnd(dateToLocalDate(startdate), dateToLocalDate(enddate)); + Set datesExcludingWeekends = getWorkingDays(dateToLocalDate(startdate), dateToLocalDate(enddate)); addDateSet.addAll(datesExcludingWeekends); } } @@ -228,6 +228,24 @@ public class TriprAutoCalWorkingDaysPlugin extends AbstractBillPlugIn implements return result; } + public static Set getWorkingDays(LocalDate startDate, LocalDate endDate) { + if (startDate.isAfter(endDate)) { + throw new IllegalArgumentException("开始日期不能晚于结束日期"); + } + + Set workingDays = new HashSet<>(); + LocalDate currentDate = startDate; + + while (!currentDate.isAfter(endDate)) { + if (!isWeekend(currentDate)) { + workingDays.add(currentDate); + } + currentDate = currentDate.plusDays(1); + } + + return workingDays; + } + private static boolean isWeekend(LocalDate date) { return date.getDayOfWeek() == DayOfWeek.SATURDAY || date.getDayOfWeek() == DayOfWeek.SUNDAY; }