How do you know if two periods intersect?

Asked

Viewed 128 times

2

Let’s assume I have two objects that have the following property:

Objeto 1: 
Date dataAtivacao;
Date dataDesativacao;

Objeto 2: 
Date dataAtivacao;
Date dataDesativacao;

How to know if these dates "cross". For example:

EXEMPLO 1, ENTRADA:

Objeto1.getDataAtivacao = 10/10/2015
Objeto1.getDataDesativacao = 10/11/2015

Objeto2.getDataAtivacao = 15/10/2015
Objeto2.getDataDesativacao = 15/11/2015

Saída: Se interceptam.

EXEMPLO 2, ENTRADA:

Objeto1.getDataAtivacao = 10/10/2015
Objeto1.getDataDesativacao = 10/11/2015

Objeto2.getDataAtivacao = 11/11/2015
Objeto2.getDataDesativacao = 15/11/2015

Saída: Não se interceptam.

How to do this? Thank you!

1 answer

4


Assuming that the periods are correctly defined, that is, the start date is always prior to the end date, then this condition is sufficient to determine whether two dates intersect:

(InicioPeriodo1 <= FimPeriodo2)  &&  (FimPeriodo1 >= InicioPeriodo2)

In your particular case I’d be:

Objeto1.getDataAtivacao = 10/10/2015
Objeto1.getDataDesativacao = 10/11/2015

Objeto2.getDataAtivacao = 15/10/2015
Objeto2.getDataDesativacao = 15/11/2015


if (Objecto1.getDataActivacao <= Objecto2.getDataDesactivacao && Objecto1.getDataDesactivacao >= Objecto1.getDataActivacao)
   System.Out.Println("Interceptam");
else
   System.Out.Println("Não se interceptam");
  • 1

    Perfect! That’s what it was! Thanks!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.