Java判断两个时间段是否有交集

public static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private static boolean isOverlap(String startdate1, String enddate1,String startdate2, String enddate2) {
Date leftStartDate = null;
Date leftEndDate = null;
Date rightStartDate = null;
Date rightEndDate = null;
try {
leftStartDate = format.parse(startdate1);
leftEndDate = format.parse(enddate1);
rightStartDate = format.parse(startdate2);
rightEndDate = format.parse(enddate2);
} catch (ParseException e) {
return false;
}

return
((leftStartDate.getTime() >= rightStartDate.getTime())
&& leftStartDate.getTime() < rightEndDate.getTime())
||
((leftStartDate.getTime() > rightStartDate.getTime())
&& leftStartDate.getTime() <= rightEndDate.getTime())
||
((rightStartDate.getTime() >= leftStartDate.getTime())
&& rightStartDate.getTime() < leftEndDate.getTime())
||
((rightStartDate.getTime() > leftStartDate.getTime())
&& rightStartDate.getTime() <= leftEndDate.getTime());

}

原文地址:https://www.cnblogs.com/zhanggaosong/p/9746215.html

时间: 2024-10-09 08:45:23

Java判断两个时间段是否有交集的相关文章

mysql判断两个时间段是否有交集

//判断两个时间段是否有交集 private function checkTimeCross($start_time,$end_time){ $sql = "select id from dkh_recharge_activity where ( status = 1 AND is_del = 0 ) AND ((start_time > {$start_time} AND start_time < {$end_time}) OR (start_time < {$start_t

sql语句判断两个时间段是否有交集

场景:  数据库有有两个字段.开始时间<startTime>,和结束时间<endTime>,指定一个时间段(a,b),a表示开始时间,b表示结束时间.看数据库中有没有与(a,b)冲突的时间段,有的话就返回那条记录. 解析:两个时间段相当于两个集合,不过是有顺序的集合.两个时间段有交集细分有四种情况.用sql直接判断无交集的语句可能也有,但是目前没有想到,只想到有交集的语句,如果返回不为空则表明有交集,否则没有交集. select * from test_table where (s

sql语句判断两个时间段是否有交集 &lt;非原创&gt;

场景:  数据库有有两个字段.开始时间<startTime>,和结束时间<endTime>,指定一个时间段(a,b),a表示开始时间,b表示结束时间.看数据库中有没有与(a,b)冲突的时间段,有的话就返回那条记录. 解析:两个时间段相当于两个集合,不过是有顺序的集合.两个时间段有交集细分有四种情况.用sql直接判断无交集的语句可能也有,但是目前没有想到,只想到有交集的语句,如果返回不为空则表明有交集,否则没有交集. view plaincopy select * from test

sql 判断两个时间段是否有交集

本文转自CSDN 链接地址:http://blog.csdn.net/dasihg/article/details/8450195 时间段:starttime_1到endtime_1,starttime_2到endtime_2 SQL语句:where least(endtime_1, endtime_2) > greatest(starttime_1, starttime_2) 解释:least取最小值,greatest取最大值. 创建函数least.greatest CREATE FUNCTI

java 判断两个时间相差的天数!

package com.datedaycha;     import java.text.SimpleDateFormat;     import java.util.Calendar;     import java.util.Date;     import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;     /*      * java 判断两个时间相差的天数     1.实现目标     输入:两

Java判断两个路径对应的文件是否相同

今天遇到一个bug,查了一个小时才发现是文件路径比较出了问题: 比如有两个路径:D:\dir\..\a.txt和D:\a.txt.这两个路径写法虽然不同,但是很容易知道这两个路径指向的是同一个文件.如果我们使用Java的File去判断两个路径是否相同,判断如下: File f1 = new File("D:\\dir\\..\\a.txt"); File f2 = new File("D:\\a.txt"); System.out.println(f1.getAbs

Oracle判断两个时间段是否有重叠

判断两个时间段是否有重叠 (a,b),(c,d) 判断两段时间是否有重叠 方法一 select 'yes' from dual where d>a  and c<b; 方法二 select 'yes' from dual where (a, b) overlaps (c,d); 方法三 select 'yes' from dual where a between c and d or d between a and b;

PHP计算两个时间段是否有交集(边界重叠不算)

<?php /** * PHP计算两个时间段是否有交集(边界重叠不算) * * @param string $beginTime1 开始时间1 * @param string $endTime1 结束时间1 * @param string $beginTime2 开始时间2 * @param string $endTime2 结束时间2 * @return bool * @author blog.snsgou.com */ function is_time_cross($beginTime1 =

计算两个时间段是否有交集

1 /** 2 * PHP计算两个时间段是否有交集(边界重叠不算) 3 * @param string $beginTime1 开始时间1 4 * @param string $endTime1 结束时间1 5 * @param string $beginTime2 开始时间2 6 * @param string $endTime2 结束时间2 7 * @return bool 8 */ 9 function is_time_cross($beginTime1 = '', $endTime1 =