Ich versuche, einige Ausfallzeiten Berechnungen für eine Anwendung zu tun. Was ich habe, ist eine riesige Reihe von Hashes, die zeigen, wenn verschiedene Teile der Anwendung heruntergefahren waren. Der Hash enthält eine Startzeit und eine Endzeit. Das Problem ist, dass sich einige dieser Ausfallzeiten überschneiden können. Wie kann ich das Array von Hashes durchlaufen und Zeitintervalle finden, die sich überschneiden?Finden und reduzieren überlappende Zeitintervalle in Ruby-Array
times = [{"timefrom"=>1461693247, "timeto"=>1461693307},
{"timefrom"=>1462363987, "timeto"=>1462364607},
{"timefrom"=>1462364037, "timeto"=>1462366037}]
So zum Beispiel, angesichts der obigen Anordnung, und times[1]
times[2]
überlappen. Im Idealfall möchte ich sie so zusammenführen, dass sie einen langen Ausfall bilden. I.E.
times[1] = { "timefrom" => times[1]["timefrom"], "timeto" => times[2]["timeto"] }
könnten mehr als 2 Zeitscheiben überlappen? Ist eine Eingabe nach "timefrom" sortiert? – mudasobwa
@ Mudasobwa in der Theorie könnten sie alle überlappen. Super unwahrscheinlich, aber sie könnten. Und ja, sortiert nach 'timefrom' – Zack
Willkommen bei Stack Overflow. Wir würden gerne Ihre Bemühungen sehen, das Problem zu lösen. Ohne dass es so aussieht, als würden Sie uns bitten, den Code für Sie zu schreiben. Bitte lesen Sie "[fragen]" einschließlich der verlinkten Seiten. Auch http://meta.stackoverflow.com/q/261592/128421 ist nützlich zu lesen. –