java110 5 anni fa
parent
commit
22f436986d

+ 5 - 6
java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java

@@ -767,11 +767,6 @@ public class ComputeFeeSMOImpl implements IComputeFeeSMO {
 
     @Override
     public Date getTargetEndTime(double month, Date startDate) {
-//        Calendar endDate = Calendar.getInstance();
-//        endDate.setTime(startDate);
-//        endDate.add(Calendar.MONTH, (int) month);
-//        return endDate.getTime();
-
         Calendar endDate = Calendar.getInstance();
         endDate.setTime(startDate);
 
@@ -781,7 +776,11 @@ public class ComputeFeeSMOImpl implements IComputeFeeSMO {
         if (doubleMonth <= 0) {
             return endDate.getTime();
         }
-        Double hour = doubleMonth * 30 * 24;
+        Calendar futureDate = Calendar.getInstance();
+        futureDate.setTime(endDate.getTime());
+        futureDate.add(Calendar.MONTH, 1);
+        int futureDay = futureDate.getActualMaximum(Calendar.DAY_OF_MONTH);
+        Double hour = doubleMonth * futureDay * 24;
         endDate.add(Calendar.HOUR_OF_DAY, hour.intValue());
         return endDate.getTime();
     }

+ 5 - 1
service-api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java

@@ -199,7 +199,11 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
             cycles = cycles - Math.floor(cycles);
         }
         //int hours = new Double(cycles * DateUtil.getCurrentMonthDay() * 24).intValue();
-        int hours = new Double(cycles * 30 * 24).intValue();
+        Calendar futureDate = Calendar.getInstance();
+        futureDate.setTime(endCalender.getTime());
+        futureDate.add(Calendar.MONTH, 1);
+        int futureDay = futureDate.getActualMaximum(Calendar.DAY_OF_MONTH);
+        int hours = new Double(cycles * futureDay * 24).intValue();
         endCalender.add(Calendar.HOUR, hours);
 
         return endCalender;