首页 > 编程语言 >有一个包含开始日期和结束日期的数组,获取最小的日期和最大的日期,用java实现

有一个包含开始日期和结束日期的数组,获取最小的日期和最大的日期,用java实现

时间:2025-01-18 19:55:24浏览次数:1  
标签:startDate java DateRange dateRanges 日期 数组 endDate LocalDate public

package com.cfb.oa.m;

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

class DateRange {
    LocalDate startDate;
    LocalDate endDate;

    public DateRange(LocalDate startDate, LocalDate endDate) {
        this.startDate = startDate;
        this.endDate = endDate;
    }

    // Getters for startDate and endDate
    public LocalDate getStartDate() {
        return startDate;
    }

    public LocalDate getEndDate() {
        return endDate;
    }
}

public class DateRangeUtils {

    public static LocalDate findMinStartDate(List<DateRange> dateRanges) {
        if (dateRanges == null || dateRanges.isEmpty()) {
            throw new IllegalArgumentException("Date range list cannot be null or empty");
        }
        LocalDate minStartDate = LocalDate.MAX; // 初始化为LocalDate的最大可能值
        for (DateRange dateRange : dateRanges) {
            LocalDate startDate = dateRange.getStartDate();
            if (startDate.isBefore(minStartDate)) {
                minStartDate = startDate;
            }
        }
        return minStartDate;
    }

    public static LocalDate findMaxEndDate(List<DateRange> dateRanges) {
        if (dateRanges == null || dateRanges.isEmpty()) {
            throw new IllegalArgumentException("Date range list cannot be null or empty");
        }
        LocalDate maxEndDate = LocalDate.MIN; // 初始化为LocalDate的最小可能值
        for (DateRange dateRange : dateRanges) {
            LocalDate endDate = dateRange.getEndDate();
            if (endDate.isAfter(maxEndDate)) {
                maxEndDate = endDate;
            }
        }
        return maxEndDate;
    }

    public static void main(String[] args) {
        List<DateRange> dateRanges = new ArrayList<>();
        dateRanges.add(new DateRange(LocalDate.of(2023, 1, 15), LocalDate.of(2023, 1, 20)));
        dateRanges.add(new DateRange(LocalDate.of(2022, 12, 10), LocalDate.of(2022, 12, 15)));
        dateRanges.add(new DateRange(LocalDate.of(2023, 3, 5), LocalDate.of(2023, 3, 10)));

        LocalDate minStartDate = findMinStartDate(dateRanges);
        LocalDate maxEndDate = findMaxEndDate(dateRanges);

        System.out.println("Minimum start date: " + minStartDate);
        System.out.println("Maximum end date: " + maxEndDate);
    }
}

 

标签:startDate,java,DateRange,dateRanges,日期,数组,endDate,LocalDate,public
From: https://www.cnblogs.com/luodengxiong/p/18678770

相关文章

  • Java游戏源码:象棋网络对战版+大学生练手项目
    学习java朋友们,福利来了,今天小编给大家带来了一款象棋网络对战版源码。你可以学习到socket编程知识,还有基础的游戏编程知识。视频演示https://githubs.xyz/show/207.mp4源码搭建和讲解 代码采用原生java类库编写,利用javaswing作为界面框架,完整源码获取地址:gitee.com/hadl......
  • JavaScript 中的 `findIndex` 方法
    ......
  • JAVA-Exploit编写(1)--HttpURLConnection库使用
    目录1.HttpURLConnection简介2.创建HttpURLConnection请求.2.1HttpURLConnection的属性2.2设置相关的请求属性2.3 设置请求头参数3使用GET方法进行请求4.POST方法进行请求4.1常规使用4.2单独调用 5. 设置代理5.1 直接设置代理5.2 配置Proxy代理类 6.......
  • JAVA-Exploit编写(2)--HttpClient库使用
    目录1.HttpClient简介1.1ApacheHttpClient特性1.2 ApacheHttpClient使用流程2.依赖导入3.HttpClient属性4.GET方式请求4.1 test2.php4.2不携带参数请求 4.3 携带参数提交4.4 支持URIBuilder对象的使用 5.POST请求5.1test3.php5.2 单个参数提交......
  • 有一个包含开始时间和结束时间的数组,要求日期从早到晚有连贯性,不能出现重叠,用JAVA判断
    packagecom.cfb.oa.m;importjava.time.LocalDate;importjava.util.ArrayList;importjava.util.List;classDateRange{LocalDatestart;LocalDateend;publicDateRange(LocalDatestart,LocalDateend){this.start=start;th......
  • 图书馆管理系统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拼音数据类型强类型语言:变量的使用要严格符合规定,所有变量必须先定义才能使用......