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());  
              
    }  


true:有交集

false:無交集

發佈了109 篇原創文章 · 獲贊 17 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章