Hier meine Eingangsdatendie Datetime Bereiche Merging am Ende des Tages und der Start des nächsten Tages
case class DateRange(sd:DateTime,ed:DateTime)
val sd1 = DateTime.parse("2016-04-04T20:00:00.000Z")
val ed1 = DateTime.parse("2016-04-04T23:59:59.999Z")
val sd2 = DateTime.parse("2016-04-05T00:00:00.000Z")
val ed2 = DateTime.parse("2016-04-05T05:00:00.000Z")
val sd3 = DateTime.parse("2016-04-05T20:00:00.000Z")
val ed3 = DateTime.parse("2016-04-05T23:59:59.999Z")
val sd4 = DateTime.parse("2016-04-06T00:00:00.000Z")
val ed4 = DateTime.parse("2016-04-06T05:00:00.000Z")
val sd5 = DateTime.parse("2016-04-07T10:00:00.000Z")
val ed5 = DateTime.parse("2016-04-07T15:00:00.000Z")
val drList = List(DateRange(sd1,ed1),DateRange(sd2,ed2),DateRange(sd3,ed3),DateRange(sd4,ed4),DateRange(sd5,ed5))
Die gewünschte Ausgangs ich suche ist
val res = List(DateRange(sd1,ed2),DateRange(sd3,ed4),DateRange(sd5,ed5))
Hier die ed1, ed3
ist Das Ende des Tages und sd1, sd3
sind Tagesbeginn für die jeweiligen Daten. Ich möchte diese Art von Bereichen zusammenführen, wie wir oben in der gewünschten Ausgabe sehen können.
versuchte ich Partitionierung wie diese
val result = drList.partition(x => x.sd.isEqual(x.sd.withTimeAtStartOfDay()) || x.ed.isEqual(x.ed.withTime(LocalTime.parse("23:59:59")))))
Aber nicht immer, wie das Ergebnis zu verschmelzen. Danke im Voraus.