zoukankan      html  css  js  c++  java
  • 判断多个时间段区间是否有重叠

    /**
    * 判断日期范围是否有重叠(日期到天)
    * @param list
    * @return
    */
    public static boolean overlapping(List<String> list) {
    if (list == null || list.size() <= 1) {
    return false;
    }
    for (int i = 0; i < list.size(); i++) {
    String dateRange [] = list.get(i).split(" ");
    Date startDate = stringToDate(dateRange[0],"yyyy-MM-dd");
    Date endDate = stringToDate(dateRange[1], "yyyy-MM-dd");
    for (int j = i + 1; j < list.size(); j++) {
    String dateRangeJ [] = list.get(j).split(" ");
    Date startDateJ = stringToDate(dateRangeJ[0],"yyyy-MM-dd");
    Date endDateJ = stringToDate(dateRangeJ[1], "yyyy-MM-dd");

    if (!startDateJ.before(startDate)) {
    if (!startDateJ.after(endDate)) {
    return true;
    }
    } else if (!endDateJ.before(startDate)) {
    return true;
    }
    }
    }
    return false;
    }

    返回true表示有重叠 false表示无重叠

    调用示例:
    List<String> dateRanges = new ArrayList<>();
    dateRanges.add("2021-10-01 2021-10-03");
    dateRanges.add("2021-10-04 2021-10-05");
    dateRanges.add("2021-10-05 2021-10-06");

    overlapping(dateRanges);





  • 相关阅读:
    python 解释器交互模块 -- sys
    python 操作系统模块 -- OS
    python 随机数模块 -- random
    python 时间模块 -- time
    Python 面向对象
    python 模块
    python -- 面向对象进阶
    github连接提示
    linux day4
    git基本使用
  • 原文地址:https://www.cnblogs.com/wjxbk/p/15472504.html
Copyright © 2011-2022 走看看