-1

Given two date ranges, whether the two date ranges overlap?

As an example, suppose we have ranges denoted by DateTime variables StartDate1 to EndDate1 and StartDate2 to EndDate2.

eg:

(A) StartDate1- 14-08-2014   EndDate1 - 14-08-2015
    StartDate2- 14-08-2012   EndDate2 - 14-08-2013

(B) StartDate1- 14-08-2014   EndDate1 - 14-08-2015
    StartDate2- 14-08-2013   EndDate2 - 14-08-2014

(C) StartDate1- 14-08-2014   EndDate1 - 14-08-2015
    StartDate2- 15-08-2014   EndDate2 - 13-08-2015

(D) StartDate1- 14-08-2014   EndDate1 - 14-08-2015
    StartDate2- 14-08-2015   EndDate2 - 14-08-2016

(E) StartDate1- 14-08-2014   EndDate1 - 14-08-2015
    StartDate2- 15-08-2015   EndDate2 - 15-08-2016
Guanxi
  • 3,103
  • 21
  • 38
beDev
  • 11
  • 1
  • 7

1 Answers1

-1

Not Overlapped:

Start1 > End2(after) OR End1 < Start2(before)

So overlapped will be NOT (Start1 > End2 OR End1 < Start2)

Please note that in order to use "<" or ">" ,you can use Date.getTime() to get the Date of long.

    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");      
    long Start1 =sdf.parse("14-08-2014").getTime();
    long End1=sdf.parse("14-08-2015").getTime();
    long Start2=sdf.parse("14-08-2012").getTime();
    long End2=sdf.parse("14-08-2013").getTime();
    System.out.println("overlapped :" +!((Start1>End2)||(End1<Start2)));
JaskeyLam
  • 15,405
  • 21
  • 114
  • 149