![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Erfahrener Benutzer Registriert seit: 19.08.2005
Beiträge: 115
|
Hallo, ist ein bissl was her, dass ich mich hier das letzte mal blicken lassen hab, aber bei diesem Problem komme ich echt nicht weiter ... vllt liegts am Wetter, bei der Hitze kann man nichtmehr logisch denken .... Also: Ich habe ein Array mit Zeitspannen, das so aufgebaut ist: Code: Array (
[0] => Array(
[0] = $start,
[1] = $ende,
)
[1] => Array(
[0] = $start,
[1] = $ende,
)
)
Das Array umfasst eine Variable Anzahl von solchen Zeitspannen, die sich nicht überschneiden und alle innerhalb von einem Tag liegen. Diese Zeitspannen stellen Zeiträume da, die als "Frei" gekennzeichnet sind. Nun gibt es für diesen Tag allerdings noch ein paar "Termine". Also ein Array, das genauso aufgebaut ist, dessen einträge allerdings Zeitspannen angeben, die NICHT frei sind. Diese sollen jetzt Quasi von den Zeitspannen, die Frei sind "abgezogen" werden. Wenn z.b. die Zeit von 8:00 bis 10:00 als Frei gekennzeichnet ist und es einen Termin in der Zeit von 9:00 und 9:30 gibt, sollen nachher die Zeiten 8:00 - 9:00 und 9:30 - 10:00 als frei gekennzeichnet sein - in einem neuen Array. (Das ganze ist natürlich mit timestamps geregelt und nicht mit Uhrzeit-angaben). Ansatz: Ich hatte einen, der aus zwei ineinander verschachtelten Foreach schleifen bestand, in denen dann quasi jede kombination von den freien Zeitspannen und den Terminen überprüft wurde .... allerdings blicke ich da jetzt schon selbst nicht mehr durch und komme auf keinen grünen Zweig .... das muss doch irgendwie besser gehen. Bitte helft mir.
__________________ Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning. |
| | |
| | Nach oben #2 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 685
|
Eine Frage: Warum machst du da 2 Arrays draus? Es reicht doch, ein Array mit den Terminen zu erstellen. Standardmäßig ist dann alles "Frei", was nicht in einem Termin ist, das fände ich deutlich logischer und auhc viel einfacher!?
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
| | Nach oben #3 |
| Erfahrener Benutzer Registriert seit: 19.08.2005
Beiträge: 115
|
Leider nicht - Das eine Array beinhaltet die Zeitspannen, die aufgrund des Wochentages als Frei markiert sind (Samstage unterscheiden sich von Montagen etc.),die allerdings schon auf den speziellen Tag umgerechnet wurden, die Termine sind allerdings für jeden Tag unterschiedlich. Mir ist gerade noch eingefallen, dass man evtl. das eine Array mit den freien Zeiten "spiegeln" könnte, und so dann zwei arrays mit belegten Zeiten hätte. Die wiederum kann man zusammenführen, so das man nur ein array mit "Terminen" hat, die sich dann allererdings überschneiden können, und ansonsten ist alles frei. Wenn man nun die sich überschneidenden Termine zusammenfassen könnte, könnte man das array wieder "spiegeln" und man erhält das gewünschte ergebnis. Problem ist aber: Wie fasst man das Array zusammen, so dass sich überschneidende Termine zu einem Termin werden? Mir fällt gerade absolut kein Ansatz ein ....
__________________ Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning. |
| | |
| | Nach oben #4 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 685
|
Also dann würde ich lieber ein Array machen, in dem Zeitabschnitte von meinetwegen 5 Minuten drin stehen und dann schreibe ich in die entsprechende Stelle des Arrays den Termin rein!? Also z.B. so: PHP-Code: Nur eine Idee!?
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
| | Nach oben #5 |
| Erfahrener Benutzer Registriert seit: 19.08.2005
Beiträge: 115
|
Eigentlich keine schlechte Idee, aber es ist halt nicht sicher, ob die Termine wirklich so schöne start und Endzeiten haben ... das kann auch mal 15:30:10 oder so ... und 86400 Einträge in einem Array sind dann doch wohl unzumutbar...
__________________ Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning. |
| | |
| | Nach oben #6 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
|
Wer macht bitte Termine auf die Sekunde genau aus? Ich glaube das ist unrealistisch....
__________________ I did it my way - Senseless-Blog |
| | |
| | Nach oben #7 | |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 685
| Zitat:
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll | |
| | |
| | Nach oben #8 |
| Benutzer Registriert seit: 12.12.2005
Beiträge: 49
|
Wie trägst du denn die Termine ein? Wenn du eine Maske dafür hast, dann kannst du doch von Anfang an ausschliesen, dass man Samstags einen Termin einträgt?! Dann bräuchtest du nur noch das Array mit den Terminzeiten und fertig...
__________________ Gruß code5 |
| | |
| | Nach oben #9 | |
| Erfahrener Benutzer Registriert seit: 19.08.2005
Beiträge: 115
| Zitat:
Es dürfen ja auch Samstags Termine Eingetragen werden. Ich möchte lediglich von einem Array, das grundsätzlich freie Zeitspannen angibt eines "subtrahieren", dass die für diesen Tag vorgemerkte Termine enthält.
__________________ Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning. | |
| | |
| | Nach oben #10 | |
| Benutzer Registriert seit: 20.08.2005
Beiträge: 91
|
Mach doch z.B. wie alle oben Dir gesagt haben! Z.B. könntest Du stündlich oder halbstründlich ein Array machen: Array ( [0] => Array( [0] = $start, //0 Uhr [1] = $ende, //1 Uhr ['termin']=bool, ['genaue_startzeit]='', ['genaue_dauer']='', ['termin']='' ) ) ... Und wenn Du wirklich 20 Termine in sagen wir 5 Minuten hast dann nimmst Du halt Typ Text für ['termin'] und "ballerst" Deine Termine darein und wenn ['termin'] true ist subtraierst Du ['genaue_dauer'] Zitat:
mfg | |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |