From 1f93a7ae88c741eb2ab5c7e70b5ebf3a5b6340f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 20 Jan 2025 14:33:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=97=A5=E6=9C=9F=E9=AB=98=E7=B2=BE?= =?UTF-8?q?=E5=BA=A6=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/formlua/func/date/DateTimeServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java index 5f2ffedd0..51178fcb8 100644 --- a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java +++ b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java @@ -164,7 +164,7 @@ public class DateTimeServiceImpl implements DateTimeService { boolean checkType = true; switch (type) { case "Y": - time = DateTimeServiceImpl.getTime(startDate, endDate) / (nd.doubleValue()) / 365.0; + time = DateTimeServiceImpl.getTime(startDate, endDate) / (nd.doubleValue()) / 365.25; break; case "M": Long monthR = DateTimeServiceImpl.getByField(cal1, cal2, Calendar.YEAR) * 12 + DateTimeServiceImpl.getByField(cal1, cal2, Calendar.MONTH); @@ -194,7 +194,7 @@ public class DateTimeServiceImpl implements DateTimeService { return new DataType(DataType.STRING, ""); } BigDecimal b = new BigDecimal(time); - double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + double f1 = b.setScale(2, BigDecimal.ROUND_DOWN).doubleValue(); result = f1; return new DataType(DataType.NUMBER, result); } @@ -1168,10 +1168,10 @@ public class DateTimeServiceImpl implements DateTimeService { Long secondsL = null; switch (type) { case "Y": - secondsL = (long) (365 * 24 * 60 * 60 * 1000); + secondsL = (long) (365.25 * 24 * 60 * 60 * 1000); break; case "M": - secondsL = (long) (30 * 24 * 60 * 60 * 1000); + secondsL = (long) (30.4375 * 24 * 60 * 60 * 1000); break; case "D": secondsL = (long) (24 * 60 * 60 * 1000); @@ -1318,7 +1318,7 @@ public class DateTimeServiceImpl implements DateTimeService { double resutl; switch (returnPattern) { case "Y": - resutl = DateTimeServiceImpl.getTime(beginDate, endDate) / (24 * 60 * 60 * 1000) / 365.0; + resutl = DateTimeServiceImpl.getTime(beginDate, endDate) / (24 * 60 * 60 * 1000) / 365.25; break; case "M": resutl = DateTimeServiceImpl.getByField(beginCalendar, endCalendar, Calendar.YEAR) * 12 + DateTimeServiceImpl.getByField(beginCalendar, endCalendar, Calendar.MONTH); From ebc0b87505789c9ff376cd8fd37472bcf6e56fe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 21 Jul 2025 09:58:40 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=97=A5=E6=9C=9F=E7=B2=BE=E5=BA=A6?= =?UTF-8?q?=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/formlua/func/date/DateTimeServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java index 51178fcb8..6cb8e8fbe 100644 --- a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java +++ b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java @@ -164,7 +164,7 @@ public class DateTimeServiceImpl implements DateTimeService { boolean checkType = true; switch (type) { case "Y": - time = DateTimeServiceImpl.getTime(startDate, endDate) / (nd.doubleValue()) / 365.25; + time = DateTimeServiceImpl.getByField(cal1, cal2, Calendar.YEAR).doubleValue(); break; case "M": Long monthR = DateTimeServiceImpl.getByField(cal1, cal2, Calendar.YEAR) * 12 + DateTimeServiceImpl.getByField(cal1, cal2, Calendar.MONTH);