Erstellen eines Zeitplans

So .. jemand hat mich kürzlich gebeten, einen Zeitplan für sie zu erstellen und ich habe zugestimmt. Als ich mich dazu setzte, wurde mir klar, dass es schwieriger war, als ich dachte. Es ist nur ein Zeitplan, um 4 Personen für Tag oder Nacht Schichten zu geben.

Ich dachte an so etwas:

for Monday to Saturday {
  for(i=0;i<people.length;i++){
    if (person[i].available()){
      person.worksDay()
      person is now not available.
    }
  }

  for(i=0;i<people.length;i++){
    if (person[i].available()){
      person[i].worksNight()
      person[i] is now not available.
    }
  }
}

Diesem Algorithmus liegt also die Idee zugrunde, dass eine Person für jeden Tag einer Tag- oder Nachtschicht zugeordnet ist. Eine Person ist verfügbar, wenn sie NUR eine Schicht gearbeitet hat und nicht in den Ferien ist. Es ist für Montag bis Samstag. Wie Sie wahrscheinlich sehen können, würde die Zuordnung bei Personen A, B, C, D wie folgt aussehen (wenn sich niemand in den Ferien befindet):

Mon A B
Tue C D
Wed A B
Th  C D
Fri A B
Sat C D

Dies funktioniert, aber es ist ein bisschen offensichtlich. Die Person, die mich gefragt hat, wollte verschiedene Optionen sehen. Gibt es einen besseren Weg, um mehr als nur diese Option zu sehen? Oder gibt es überhaupt ein Programm, das das für Sie erledigt?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage