首页 > 编程语言 >有一个包含开始时间和结束时间的数组,要求日期从早到晚有连贯性,不能出现重叠,用JAVA判断

有一个包含开始时间和结束时间的数组,要求日期从早到晚有连贯性,不能出现重叠,用JAVA判断

时间:2025-01-18 19:20:43浏览次数:1  
标签:JAVA DateRange previousRange dateRanges start 从早到晚 end 连贯性 LocalDate

package com.cfb.oa.m;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

class DateRange {
    LocalDate start;
    LocalDate end;

    public DateRange(LocalDate start, LocalDate end) {
        this.start = start;
        this.end = end;
    }

    // Getters and setters omitted for brevity
}

public class DateRangeValidator {

    public static boolean validateDateRanges(List<DateRange> dateRanges) {
        if (dateRanges == null || dateRanges.isEmpty()) {
            return true; // No ranges to validate, consider it valid
        }

        DateRange previousRange = null;
        for (DateRange currentRange : dateRanges) {
            if (previousRange != null) {
                // Check for overlap
                if (!previousRange.end.isBefore(currentRange.start)) {
                    return false; // Overlap detected
                }
                // Check for continuity (no gap between ranges)
                if (!previousRange.end.isEqual(currentRange.start.minusDays(1))) {
                    return false; // Gap detected, not continuous
                }
            }
            previousRange = currentRange;
        }

        return true; // No overlaps or gaps detected
    }

    public static void main(String[] args) {
        List<DateRange> dateRanges = new ArrayList<>();
        dateRanges.add(new DateRange(LocalDate.of(2023, 10, 1), LocalDate.of(2023, 10, 5)));
        dateRanges.add(new DateRange(LocalDate.of(2023, 10, 8), LocalDate.of(2023, 10, 10)));
        // Add more date ranges as needed, ensuring they are continuous and non-overlapping

        boolean isValid = validateDateRanges(dateRanges);
        System.out.println("Date ranges are valid: " + isValid);
    }
}

 

标签:JAVA,DateRange,previousRange,dateRanges,start,从早到晚,end,连贯性,LocalDate
From: https://www.cnblogs.com/luodengxiong/p/18678735

相关文章

  • 图书馆管理系统javaweb(含数据库脚本)
    图书馆管理系统javaweb(含数据库脚本),tomcat7eclipsejdk1.8包含数据库文件列表BookLibrarySystem-master/.classpath , 9020BookLibrarySystem-master/.project , 1639BookLibrarySystem-master/.settings/.jsdtscope , 499BookLibrarySystem-master/.settings/org.ec......
  • Java入门学习Day2
    目录(一)Java01:Java帝国的诞生(二)Java02:特性与优势(三)Java03:三大版本(四)Java04:JDK、JRE、JVM(五)Java05:安装开发环境(六)Java06:HelloWorld详解(七)Java07:编译型和解释型(八)Java08:使用IDEA开发(一)Java01:Java帝国的诞生先附上学习的链接:b站狂神说Java入门011995年诞生三高......
  • Java 批量检测微信小程序封禁状态
    项目代码importjava.io.InputStreamReader;importjava.io.BufferedReader;importjava.net.HttpURLConnection;importjava.net.URL;importorg.json.JSONObject;publicclassMiniProgramStatusChecker{//要检查的小程序AppID列表privatestatic......
  • [2025.1.18 JavaSE学习]标准I/O流 && 转换流
    标准I/O流System.in:标准输入默认设备:键盘类型:InputStreamSystem.out:标准输出默认设备:显示器类型:PrintStreamSystem.in编译类型为InputStream,而运行类型为BufferedInputStreampublicfinalstaticInputStreamin=null;System.out编译类型为PrintStream,运行类......
  • Java基础
    注释种类单行注释//内容多行注释/*内容*/文档注释/**内容*/写注释是很好的习惯!!!标识符注意点以字母/美元/_为开头标识符是大小写敏感的,所以一定要注意类名no中文,标识符no拼音数据类型强类型语言:变量的使用要严格符合规定,所有变量必须先定义才能使用......
  • java面向对象与异常
    面向对象初识面向对象方法回顾和加深对象的创建和分析面向对象的三大特性抽象类和接口内部类和oop实战初识面向对象面向过程&面向对象:类=属性+方法对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微......
  • 你不知道的javascript-14(Symbol,map,set)
    1.Symbol(生成唯一标识符)Symbol是JavaScript中的一种基本数据类型,它表示唯一的、不可变的值。以下是关于Symbol的详细说明:constsym1=Symbol();constsym2=Symbol("description");使用Symbol()函数可以创建一个新的Symbol。每个Symbol都是唯一的,即使它们的......
  • 【Java毕设项目】基于SpringBoot的医护人员排班系统
    【Java毕设项目】基于SpringBoot的医护人员排班系统springboot002-基于springboot的医护人员排班系统文章目录【Java毕设项目】基于SpringBoot的医护人员排班系统一、内容包括二、需求分析三、运行环境四、功能模块五、效果图展示六、获取源码一、内容包括包括有......
  • 你不知道的javascript-13(var的接替者let与const)
    1.let与const的基本使用在ES5中我们声明变量都是使用的var(variable)关键字,从ES6开始新增了两个关键字可以声明变量:let、constlet、const在其他编程语言中都是有的,所以也并不是新鲜的关键字但是let、const确确实实给JavaScript带来一些不一样的东西从使用角度来说,只是在原......
  • Java面试题汇总-集合篇+JUC篇
    其他面试题Java面试题汇总-Java基础篇(共50道题)-CSDN博客Java集合目录1.请你说说java中hashmap的原理2.HashMap的put(key,value)和get(key)过程3.在使用hashmap时,有哪些提升性能的技巧?4.什么是哈希碰撞?怎么解决哈希碰撞?5.谈一谈hashmap的扩容操作?6.hashmap的初始容量......