This commit is contained in:
2026-07-18 16:19:42 +08:00
parent bd7eda0ab4
commit a4e8c65d36

View File

@@ -226,10 +226,17 @@ public class LeaseBillUtil {
Map<String, String> bill = new HashMap<>(); Map<String, String> bill = new HashMap<>();
bill.put(fieldDisplayNameService.getDisplayName("开始日期"), getSdf().format(tempStart.getTime())); bill.put(fieldDisplayNameService.getDisplayName("开始日期"), getSdf().format(tempStart.getTime()));
// 计算本期结束日 = 开始时间 + 周期月数 - 1天 // 计算本期结束日
Calendar periodEnd = (Calendar) tempStart.clone(); Calendar periodEnd = (Calendar) tempStart.clone();
periodEnd.add(Calendar.MONTH, payCycleMonths); periodEnd.add(Calendar.MONTH, payCycleMonths);
periodEnd.add(Calendar.DATE, -1); // 月末日期特殊处理:起始日为月末时,周期结束日也保持为目标月月末
int startDay = tempStart.get(Calendar.DAY_OF_MONTH);
int startMaxDay = tempStart.getActualMaximum(Calendar.DAY_OF_MONTH);
if (startDay == startMaxDay) {
periodEnd.set(Calendar.DATE, periodEnd.getActualMaximum(Calendar.DATE));
} else {
periodEnd.add(Calendar.DATE, -1);
}
if (periodEnd.before(endTime)) { if (periodEnd.before(endTime)) {
// 正常完整周期 // 正常完整周期