From 9318646aa40a0306fef1be1b16cde4c959e47273 Mon Sep 17 00:00:00 2001 From: fengjignqi <15192412330@163.com> Date: Fri, 29 May 2026 08:17:06 +0800 Subject: [PATCH] =?UTF-8?q?time=E9=85=8D=E7=BD=AE=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../water/plan/WaterConfigFragment_copy.java | 58 ++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/ckkj/water/plan/WaterConfigFragment_copy.java b/app/src/main/java/com/ckkj/water/plan/WaterConfigFragment_copy.java index 5d24d6b..a0e8b92 100644 --- a/app/src/main/java/com/ckkj/water/plan/WaterConfigFragment_copy.java +++ b/app/src/main/java/com/ckkj/water/plan/WaterConfigFragment_copy.java @@ -38,9 +38,11 @@ import com.yanzhenjie.recyclerview.SwipeMenuItem; import com.yanzhenjie.recyclerview.SwipeRecyclerView; import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Locale; public class WaterConfigFragment_copy extends BaseFragment implements WaterPlanContract.WaterPlanView { @@ -154,7 +156,13 @@ public class WaterConfigFragment_copy extends BaseFragment timeDataList = dayBean.getTimeData(); + + if (timeDataList == null || timeDataList.isEmpty()) { + continue; + } + + // 收集该天所有有效的时间段(开始时间 + 结束时间) + List periods = new ArrayList<>(); + for (WaterPlanWeekEntity.TimeDataBean timeData : timeDataList) { + if (TextUtils.isEmpty(timeData.getStartTime()) || timeData.getDurationMin() <= 0) { + continue; + } + try { + Date startDate = sdf.parse(timeData.getStartTime()); + long startMinutes = startDate.getHours() * 60 + startDate.getMinutes(); + long endMinutes = startMinutes + timeData.getDurationMin(); + periods.add(new long[]{startMinutes, endMinutes}); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // 检查是否有冲突 + for (int i = 0; i < periods.size(); i++) { + for (int j = i + 1; j < periods.size(); j++) { + long[] p1 = periods.get(i); + long[] p2 = periods.get(j); + // 冲突条件:一个段的开始时间在另一个段的结束时间之前(即有重叠) + // 不冲突:p1.end <= p2.start 或 p2.end <= p1.start + if (!(p1[1] <= p2[0] || p2[1] <= p1[0])) { + String dayName = dayBean.getWeekName(); + return dayName + "的时间配置存在冲突,请调整"; + } + } + } + } + return null; + } + /** * 选择开始时间 * @param position