6
votes

Comparez les intervalles de temps sans bornes avec Joda-Lib

est-il possible de déterminer à partir de deux intervalles sans rabats (intervalles avec une limite à l'infini) se chevauchent ou non?

J'ai essayé ceci (et d'autres variations similaires): P>

Instant now = new Instant(new Date().getTime());
Interval i2 = new Interval(now, (ReadableInstant) null);
Interval i1 = new Interval(now, (ReadableInstant) null);
boolean overlapping = i2.overlaps(i1);


3 Réponses :


4
votes

Si les deux intervalles commencent à t = -∞ ou si les deux intervalles se terminent à t = + ∞ , ils seront toujours chevauchements, quelle que soit la date de début.

Si l'intervalle a commence à t = -∞ et intervalle b se termine à t = + ∞ , Ils se chevauchent iff
a.start> b.start .


0 commentaires


1
votes

Je recommanderais d'utiliser une plage code> ( de GUAVA ), qui devrait fournir toutes les options de construction et les fonctions de comparaison dont vous avez besoin.

Range<DateTime> r1= Range.atLeast(DateTime.now());
Range<DateTime> r2 = Range.atLeast(DateTime.now());
boolean overlap = r1.isConnected(r2) && !r1.intersection(r2).isEmpty();


0 commentaires