Thread Datenstruktur Terminkalender (3 answers)
Opened by rosti at 2011-05-22 21:06

rosti
 2011-05-25 19:45
#149176 #149176
User since
2011-03-19
3470 Artikel
BenutzerIn
[Homepage]
user image
Kurzer Erfahrungsbericht:

zum Darstellen im Kalender ist folgende Datenstruktur gut geeignet (Auszug aus einer Kalenderwoche):

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
    2455709 => [],
    2455710 => [
                 [
                   "09:00",
                   "11:00",
                   "Reinigung der Hauptstra\303\237e in Oppenheim, bitte Parkverbot beachten",
                 ],
                 [
                   "13:00",
                   "23:59",
                   "Stra\303\237enfest Hauptstra\303\237e in Oppenheim",
                 ],
               ],


Die Arrays sind sortiert, Beispiel online, Kalenderwoche 21/2011

http://rolfrost.de/apps/cal

In der Datenstruktur ist der Tag (Julianische Tagesnummer) der Schlüssel, "Begin,Ende" weiterere Schlüssel unter dem Tag und der Value ist halt die Beschreibung (in einer Zeiterfassung stünde hier die 'Zeitart').

Begin,Ende sind intern als Minuten,Minuten (Tagesminuten, max 1440) gespeichert, in einer Datei als Hash of Hashes (da habe ich ein eigenes Modul als Ersatz für Storable.pm was es bei meinem Provider nicht gibt).

Überschneidungen der Tages-Unterzeiten sind nicht zulässig, das deckt die Anwendungsfälle Zeiterfassung, Raumplanung, Veranstaltungen usw. Wer Überschneidungen zulassen möchte, dem wünsche ich viel Spaß dabei, vor allem bei der Darstellung ;)

Die Datenstruktur ließe sich auch in MySQL unterbringen, dazu wird nur die Klasse ausgetauscht, scriptintern sind in dem Fall keine Änderungen notwendig, die Datenstruktur und die Methoden bleiben diesselben.

Alles in Allem ist der Code sehr übersichtlich geworden, vor ein paar Jahren habe ich mal eine Arbeitszeiterfassung programmiert, die hat zwar einwandfrei funktioniert (mit Export nach S A P), aber _den_ Code möchte ich heute nicht noch einmal anfassen *G*

Viele Grüße,
Rosti

View full thread Datenstruktur Terminkalender