From 31bd44345bca0b0fbe9b03eeb67a7499c702a36b Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期五, 18 十二月 2020 10:30:04 +0800
Subject: [PATCH] 优化算费
---
java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java | 40 +++++++++++++++++++++++++++++++++++++---
1 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java b/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
index fdcdee1..47dffb6 100644
--- a/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
+++ b/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
@@ -774,9 +774,15 @@
Calendar newFrom = Calendar.getInstance();
newFrom.setTime(fromDate);
newFrom.add(Calendar.MONTH, result);
+ //濡傛灉鍔犳湀浠藉悗 澶т簬浜嗗埌鏈熸椂闂� 榛樿鍔� 鏈堜唤 -1 鎯呭喌 12-19 21-01-10
+ if (newFrom.getTime().getTime() > toDate.getTime()) {
+ newFrom.setTime(fromDate);
+ result = result - 1;
+ newFrom.add(Calendar.MONTH, result);
+ }
- long t1 = newFrom.getTimeInMillis();
- long t2 = to.getTimeInMillis();
+ long t1 = newFrom.getTime().getTime();
+ long t2 = to.getTime().getTime();
double days = (t2 - t1) * 1.00 / (24 * 60 * 60 * 1000);
BigDecimal tmpDays = new BigDecimal(days);
BigDecimal monthDay = null;
@@ -792,7 +798,7 @@
days = (newFromMaxDay.getTimeInMillis() - t1) * 1.00 / (24 * 60 * 60 * 1000);
tmpDays = new BigDecimal(days);
monthDay = new BigDecimal(newFrom.getActualMaximum(Calendar.DAY_OF_MONTH));
- BigDecimal preRresMonth = tmpDays.divide(monthDay, 2, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(result));
+ BigDecimal preRresMonth = tmpDays.divide(monthDay, 2, BigDecimal.ROUND_HALF_UP);
//涓嬫湀澶╂暟
days = (t2 - newFromMaxDay.getTimeInMillis()) * 1.00 / (24 * 60 * 60 * 1000);
@@ -822,4 +828,32 @@
return endDate.getTime();
}
+ public static void main(String[] args) {
+ ComputeFeeSMOImpl computeFeeSMO = new ComputeFeeSMOImpl();
+ try {
+ double month = computeFeeSMO.dayCompare(
+
+ DateUtil.getDateFromString("2020-12-19 00:00:00", DateUtil.DATE_FORMATE_STRING_A),
+ DateUtil.getDateFromString("2021-1-10 00:00:00", DateUtil.DATE_FORMATE_STRING_A)
+ );
+
+ System.out.println(month);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+
+// public static void main(String[] args) {
+// ComputeFeeSMOImpl computeFeeSMO = new ComputeFeeSMOImpl();
+// try {
+// Date startTime = DateUtil.getDateFromString("2020-12-31 00:00:00", DateUtil.DATE_FORMATE_STRING_A);
+// Date endTime = DateUtil.getDateFromString("2021-1-2 00:00:00", DateUtil.DATE_FORMATE_STRING_A);
+// double day = (endTime.getTime() - startTime.getTime()) * 1.00 / (24 * 60 * 60 * 1000);
+//
+// System.out.println(day);
+//
+// } catch (ParseException e) {
+// e.printStackTrace();
+// }
+// }
}
--
Gitblit v1.8.0