Portal > Foren > PHP > PHP-Programmierung > Zeitspannen "Aufbrechen"
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 25.06.2006, 16:33 Nach oben    #1
Erfahrener Benutzer
 
Registriert seit: 19.08.2005
Beiträge: 115
Standard Zeitspannen "Aufbrechen"

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,
                    )
       )
$start und $ende sind natürlich nicht immer gleich, sondern geben jeweils unterschiedliche anfangs- und endzeitpunkte an.
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.
Buhmann ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.06.2006, 16:39 Nach oben    #2
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 685
Standard

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
MrNiceGuy ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.06.2006, 16:46 Nach oben    #3
Erfahrener Benutzer
 
Registriert seit: 19.08.2005
Beiträge: 115
Standard

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.
Buhmann ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.06.2006, 17:28 Nach oben    #4
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 685
Standard

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:
$arr = array ("00:00" => array (),
                  
"00:05" => array (),
                  
"00:10" => array ("title" => "Termin A"),
                  
"00:15" => array ("title" => "Termin A")
/* etc. */
); 
Dann kannst du auch direkt auf die Zeit zugreifen und brauchst nichts mehr umrechnen!? Notfalls schreibst du noch die Endzeit mit in den Termin rein, damit du auch beim ersten Datensatz weißt, wo er zuende ist!?

Nur eine Idee!?
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.06.2006, 17:40 Nach oben    #5
Erfahrener Benutzer
 
Registriert seit: 19.08.2005
Beiträge: 115
Standard

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.
Buhmann ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.06.2006, 17:55 Nach oben    #6
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Wer macht bitte Termine auf die Sekunde genau aus?
Ich glaube das ist unrealistisch....
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.06.2006, 18:16 Nach oben    #7
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 685
Standard

Zitat:
Zitat von WarrenFaith
Wer macht bitte Termine auf die Sekunde genau aus?
Ich glaube das ist unrealistisch....
^^
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.06.2006, 08:06 Nach oben    #8
Benutzer
 
Registriert seit: 12.12.2005
Beiträge: 49
Standard

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
code5 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.06.2006, 08:44 Nach oben    #9
Erfahrener Benutzer
 
Registriert seit: 19.08.2005
Beiträge: 115
Standard

Zitat:
Zitat von code5
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...
Ich verstehe nicht, was du meinst ...
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.
Buhmann ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.06.2006, 09:16 Nach oben    #10
Benutzer
 
Registriert seit: 20.08.2005
Beiträge: 91
Standard

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:
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.
Du brauchst nicht 2 Arrays, weil JEDER Tag hat 24 Stunden, oder so ähnlich
mfg
Homepagespeicher ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45