Eine out-of-the-box-Lösung kenne ich nicht. Es ist auch nicht ganz klar, was die Anfangs- und Endwerte sein sollen. Long
aka Epoch Milliseconds, vs. LocalDateTime
…? Am besten wäre es natürlich, das generic zu machen, aber … inwieweit ist es dann noch spezifisch für „Zeit“? D.h.: Was haben Zeitintervalle, was andere „Intervalle auf partiell geordneten Mengen“ nicht haben? In diesem Sinne wird viel von dem, was man da brauchen könnte, schon von Guava Ranges abgedeckt. Aber schon bei dem verlinkten „Intersection“ sieht man eine Einschränkung: Das gewünschte "A-D".intersect("B-C") = { "A-B", "C-D" }
wäre damit nicht direkt möglich (wenn auch natürlich leicht dazuzuimplementieren).
Die Frage nach dem „selber schreiben“ klingt erstmal naiv, aber … da du auch jemand bist, der sich darüber im Klaren ist, dass…
- „die gerade benötigte Funktionalität mal kurz zusammendengeln“ ca. 10 Minuten dauert und
- Eine Library (auf GitHub und Maven Central) zu erstellen, die „sowas“ anbietet ein paar Wochen Arbeit und ggf. ein Jahrzehnt gelegentlicher „Wartungsarbeiten“ bedeutet
noch die Bemerkung: Ich hatte mal irgendwann TimeSeries - Libraries für Zeitserien erstellt (inzwischen privat), und so eine Lib könnte ein Teil bzw. ein Baustein davon sein. Falls du vorhast, weiter zu recherchieren, ob es nicht doch schon sowas gibt, und du zu dem Schluss kommst, dass man ~„das mal selbst angehen könnte“: Ping an mich.