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);