JAVA怎么判断多个日期段有没有重合的时间
发布网友
发布时间:2022-06-07 18:36
我来回答
共4个回答
热心网友
时间:2023-10-24 01:14
比较一下不就可以了!比如1-4,5-9是两个时间段,如果前面一个最大的时间4比后面的最小的5小则没有重合时间,把数字比较换成日期比较就行了!追问有十几个时间要一个个的判断吗
追答嗯
热心网友
时间:2023-10-24 01:14
判断每一个时间段的结束时间是否大于其他时间段的开始时间 如果十几个时间段是顺序的话更简单了 可以先转换格式然后减法 本人的想法 我是个菜鸟
热心网友
时间:2023-10-24 01:15
给你个算法吧,你把这十几个时间段的最小时间和最大时间分别放入两个数组或List中,然后两层循环,如果出现了最大Lis的元素t大于最小List的元素的情况,则这些时间段有重合的情况,方法可以返回true了。
热心网友
时间:2023-10-24 01:15
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("2011-12-13 2011-12-20");
list.add("2011-12-14 2011-12-25");
list.add("2011-12-26 2011-12-30");
list.add("2011-11-14 2012-2-25");
list.add("2011-12-14 2011-12-18");
try {
for(int i=0; i < list.size(); i++) {
String d1[]=list.get(i).split(" ");
Date startdate1=formater.parse(d1[0]);
Date enddate1=formater.parse(d1[1]);
for(int j=i + 1; j < list.size(); j++) {
String d2[]=list.get(j).split(" ");
Date startdate2=formater.parse(d2[0]);
Date enddate2=formater.parse(d2[1]);
if(!startdate2.before(startdate1)) {
if(!startdate2.after(enddate1)) {
System.out.println(list.get(i) + "与" + list.get(j) + "重合");
}
} else if(!enddate2.before(startdate1)) {
System.out.println(list.get(i) + "与" + list.get(j) + "重合");
}
}
}
} catch(ParseException e) {
e.printStackTrace();
}
}