Ich habe eine Sammlung von Objekten, die ich durch iterieren und Sachen mit tun muss. Scheint einfach bis jetzt. Ich habe jedoch einige Bedingungen, die es ziemlich kompliziert machen. Hierforeach loop mit mehreren logischen Bedingungen
einige Informationen:
Die Sammlung enthält eine Reihe von „Planet“ Objekte, die Planetenphasenzeiten haben.
Planetensichtzeiten werden zu Blöcken zusammengefasst, wenn die Zeitspanne zwischen zwei Phasen kleiner oder gleich 30 Minuten ist.
Zum Beispiel sind hier 6 Phasenzeiten:
- Phase 1: 8.00 bis 09.30 Uhr
- Phase 2: 10.00 bis 11.00
- Phase 3: 11.20 bis 12.30
- Phase 4: 14.00 bis 16.00 Uhr
- Phase 5: 18.30 bis 19.30
- Phase 6: 19.45 bis 09.00 Uhr
Mit den obigen Daten haben wir die folgenden Blöcke:
- Phase 1 bis Phase 3: eine durchgehender Sichtblock
- Phase 4: getrennter Betrachtungsblock
- Phase 5 und Phase 6 : ein continuuous Betrachtungsblock
Math:
- (Phase 2 Startzeit) - (Phase 1 Endzeit) = 30 Minuten
- (Phase 3 Startzeit) - (Phase 2 Endzeit) = 20 Minuten
- (Phase 4 Startzeit) - (Phase 3 Endzeit) = 90 Minuten
- (Phase 5 Startzeit) - (Phase 4 Endzeit) = 150 Minuten
- (Phase 6 Startzeit) - (Phase 5 Endzeit) = 15 Minuten
Mein fehlgeschlagener Versuch bis jetzt:
Ich habe Stunden auf dieser blöden Schleife verbracht und ich denke, dass eine andere Reihe von Augen es gut tun würde.
Es fühlt sich zu komplex, zu altmodisch und zu verwirrend an. Gibt es einen besseren/modernen Weg, dies zu tun?
Danke!
Phasen Kreises Do nach Mitternacht zurück? Mit anderen Worten, machen '12:15 Uhr - 2:30 Uhr' und '22:00 Uhr - 23:50 Uhr 'eine einzige Betrachtung? – dasblinkenlight
Wenn continueBlocking X, sonst X. X = X. Warum verwenden Sie continueBlocking? – Berkay
Haben Sie sich eher mit Fallanweisungen als mit mehreren if -Anweisungen beschäftigt? – tCoe