Ich schreibe ein Scheduling-Programm mit einem Algorithmus. Auf der letzten Stufe des Algorithmus muss ich in den Stundenplan (den erstellten Stundenplan) schauen, um zu sehen, ob der Student zu diesem Zeitpunkt bereits einer Klasse zugeordnet ist.Ermitteln, ob sich zwei Zeitbereiche überlappen
Deshalb haben wir:
Current Class Start Time: (2017, 02, 09, 10, 00, 00)
Current Class Finish Time: (2017, 02, 09, 11, 00, 00)
In diesem Moment, wo wir den Zeitplan suchen, um zu sehen, was Schüler anderer Klassen A zugeordnet:
Zum Beispiel, lassen Sie uns am selben Tag sagen sie sind bereits zugeordnet:
Class 'Z' Start Time: (2017, 02, 09, 09, 00, 00)
Class 'Z' Finish Time: (2017, 02, 09, 12, 00, 00)
Jetzt möchte ich den Zeitbereich der Klasse ‚Z‘ finden und es mit dem Zeitbereich der aktuellen Klasse zu vergleichen.
DateTime startClassZ = new DateTime(2017, 02, 09, 09, 00, 00);
DateTime endClassZ = new DateTime(2017, 02, 09, 12, 00, 00);
DateTime StartCurrent = new DateTime(2017, 02, 09, 10, 00, 00);
DateTime StartCurrent = new DateTime(2017, 02, 09, 11, 00, 00);
if (They do not clash)
{
Assign
}
if (Clash)
{
Select Another Student
}
Könnte jemand bitte helfen Sie mir mit meinen 'WENN Aussagen' und auch, wie man dieses Problem löst.
Die Art und Weise, die ich von ihm denke, gibt es drei Möglichkeiten:
- Wenn 'aktuelle Klasse' (Start und Endzeit) landet in zwischen 'Klasse Z' (Clash 1)
- Wenn die von ‚aktuellen Klasse‘ landet dazwischen ‚Klasse Z‘ (Clash 2)
- Wenn die ‚Endzeit‘ der ‚aktuelle Klasse‘ landet dazwischen ‚Klasse Z‘ (Clash 3) ‚Startzeit‘
Danke
„die Art und Weise, dass ich Wenn ich darüber nachdenke, gibt es drei Möglichkeiten: "Hast du versucht, das zu implementieren und zu sehen, was passiert? Was hast du schon versucht? http://stackoverflow.com/help/how-to-ask – AndyJ
Es gibt mehr als 3 Möglichkeiten, da Klassen nicht alle die gleiche Länge haben. Sie haben also vier Variablen: Start A, Ende A, Start B, Ende B. Die Kombinationen sind: 1) A beginnt und endet vor B beginnt 2) A beginnt vor B und endet vor B 3) A beginnt vor B und endet nach B 4) A beginnt nach B und endet vor B endet 5) A beginnt nach B und endet nach B 6) A beginnt nach B endet – jdweng
Nein, weil ich wissen möchte, ob es eine Lösung gäbe, mit der ich zB eine Variable haben kann 09:00:00 bis 12:00:00 dann kann ich if-Anweisungen verwenden, um zu sehen, ob die Startzeit die Zeit beendet oder eine neue Variable (10:00:00 bis 11:00:00) zwischen Variable der Klasse Z (09:00:00 bis 12:00:00) –