判断时间区间是否有交集

/**
* 判断时间区间是否有交集
* @param beginTime1
* @param endTime1
* @param beginTime2
* @param endTime2
* @return
*/
private boolean getTimeCoincidence(String beginTime1 ,String endTime1,String beginTime2,String endTime2){
boolean coincidence=false;
int b1 =Integer.parseInt(beginTime1.replaceAll(":", "")); 
        int e1 =Integer.parseInt(endTime1.replaceAll(":", "")); 
        int b2 = Integer.parseInt(beginTime2.replaceAll(":", "")); 
        int e2 = Integer.parseInt(endTime2.replaceAll(":", "")); 
         
        if(b1<=b2&&e1>=e2){//(b1---【b2-----e2】--e1)1包含2 
            logger.info("时间段1包含时间段2");
            coincidence=true;
          
        }else if(b1>=b2&&e1<=e2){//【b2---(b1-----e1)--e2】2包含1 
            logger.info("时间段2包含时间段1");
            coincidence=true;
          
        }else if(b1>=b2&&b1<=e2&&e2<=e1){//(b1---【b2---e1)----e2】 相交1 
            logger.info("时间段1和时间段2相交,(b1---【b2---e1)----e2】");
            coincidence=true;
         
        }else if(b1<=b2&&e1<=e2&&e1>=b2){//【b2---(b1---e2】----e1) 相交2 
            logger.info("时间段1和时间段2相交,【b2---(b1---e2】----e1)");
            coincidence=true;
          
        }else if(e1<=b2||b1>=e2){//(b1-----e1)【b2-----e2】或【b2-----e2】(b1-----e1)不相交 
       
        }else{ 
            System.out.println("意料外的日期组合,无法计算重合!"); 
        } 
      
return coincidence; //时间段有相交时 返回true
}

猜你喜欢

转载自lanrikey.iteye.com/blog/2254312
今日推荐