Datumsberechnung periodische Liste
    
 HomeDatum • periodische Liste BEISPIEL  Scriptcode 

 Liste periodisch wiederkehrender Ereignisse

Das Script erstellt, abhängig vom Startdatum und der Anzahl der vorgegebenen Array-Elemente, eine Liste. Die Einträge des Arrays werden nacheinander in die Aufzählung eingebunden und der Datumswert neu berechnet.

Rufbereitschaft, Notdienst, Schichtplan, Treppenhausreinigung, ...

Eine dynamische Liste periodisch wiederkehrender Ereignisse soll automatisiert erstellt werden. Dabei soll das Script die vorgegebenen Array-Werte, nacheinander in die Liste einbeziehen. Der Datumswert soll gemäß einer Vorgabe jedesmal erhöht und angezeigt werden. Die Kalenderwoche wird errechnet.


1  Am einfachsten ist es, ich erkläre das an einem Beispiel. Hier meine Vorgaben:

Typ Name hier im Beispiel
Array WerteArray "Meier", "Beckers", "Schulze", "Schmitz", "Müller"
Variable StartDatum January 3, 2009
Variable TageZyklus 7
Variable AnzahlTermine 5
Variable Beschreibung "Treppenhaus"


Daraus wird diese Liste mit 5 Terminen erzeugt:



Anwendungen: Dienstplan, Bereitschaftsdienst, Müllabfuhr, Fahrdienst, Notdienst, ...

Eine solche Berechnug wird zur lokalen Nutzung normalerweise mit Exel oder Access erstellt. Zur Darstellung auf einer Webseite kann sie mit JavaScript erzeugt werden. Sie können die HTML-Seite aber auch einfach ausdrucken und den Plan aufhängen, fertig.

Das sieht dann so aus: Vorschau


2  Vorzüge der Liste

1) Anzahl der Array-Elemente

Die Liste wird automatisiert die Array-Elemente (hier 5 Namen der Mieter) in die Liste mit einbeziehen. Wenn sie 7 Elemente eintragen, würde die Liste stattdessen 7 Werte (Namen) in die Liste einbeziehen. Die 7 Elemente würden in der vorgegebenen Reihenfolge nacheinander erscheinen. Nach dem letzten Element (in der 7. Woche) würde dann wieder mit dem ersten Element begonnen.

2) regelmäßige Termine

Der von ihnen eingetragene Abstand in Tagen (hier 7), legt den zeitlichen Abstand der wiederkehrenden Termine fest. Ob es nun der Termin für die Entsorgung des Papiermülls mit 21 tägigem Abstand, die Tage für den Eisprung ihrer 3 Freundinnen oder der Mondzyklus sein soll, das Script wird ihnen die Daten genau berechnen. Nicht nur theoretisch können sie auch eine Dezimalzahl als Wert eintragen. Für den Mondzyklus z.B. den Wert 29.53059 (synodischer Monat).

3) Länge der Liste

Die Anzahl der zu listenden Termine legen sie in der Variablen 'AnzahlTermine' fest.

4) Erscheinungsbild

Das Erscheinungsbild der Liste bestimmen sie selbst. Hintergrundfarbe der Terminzeilen können mit CSS fetgelegt werden. Sie können vor jedem Termin eine kleine Grafik anzeigen lassen.



   Aufwand

  • CSS-Anweisungen im Head notieren
  • JavaScript im Body notieren
  • Eckdaten für die Terminliste eintragen
  • Farben anpassen (wenn sie möchten)
  • Grafiken festlegen (wenn sie möchten)
Kurzinfo JavaScript in ein HTML-Dokument 'einbauen'


verwendete Grafiken:  (rechtsklicken zum Download)

alternativ:   



   Anpassungen

a  Eckdaten

var StartDatum = new Date("January 3, 2009");
var TageZyklus = 7;
var Beschreibung = "Treppenhaus";
var AnzahlTermine = 5;
var WerteArray = new Array("Meier", "Beckers", "Schulze", "Schmitz");
Startdatum: englische Bezeichnungen für den Monat eintragen!
January, February, March, April, May, June,
July, August, September, October, November, December



b  Grafiken

Ich verwende Grafiken mit Dateinamen, die fortlaufend nummeriert sind. Die erste Grafik hat einen Dateinamen mit der Endnummer Null. Beispiele:

pers0.gif, pers1.gif, pers2.gif, ...
kal0.gif, kal1.gif, kal2.gif, ...

Sie tragen (Pfad +) den ersten Teil des durchnummerierten Dateinamens ohne fortlaufende Nummer und die Dateiendung ein. Beispiel:

Für die Serie 'pers0.gif' , 'pers1.gif' , 'pers2.gif' , 'pers3.gif' ist das
var Grafik = "pers";
var Endung = ".gif";
Grafiken finden sie in meiner MINI-IMAGE-BOX bei Symbolen für Listen und Aufzählungen.



c  Farben

Ich verwende CSS-Anweisungen um das Erschenungsbild der Tabelle festzulegen. Anpassungen können sie dort eintragen.

<style type="text/css">
<!--
.bgcolorZeile00 {
 background-color: #EAF4FF;
}
.bgcolorZeile01 {
 background-color: #FAFAFA;
}
.bgcolorZeile02 {
 background-color: #F0E1FF;
}

#rand03 {
  border-collapse: collapse;
  border-bottom: 1px solid #BBDBFF;
}
#rand03 td, #rand03 th {
  border-bottom: 1px solid #BBDBFF;
}
-->
</style>


das war's schon



Das war's schon! Wenn sie mehr über Funktion und Anpassungen erfahren möchten, lesen sie ab hier weiter. Sie können bei diesem Script die Anzahl der Elemente erweitern, indem sie im Array weitere Eintäge notieren.






   Aufgabe des Scripts

Ein Array (Register) enthält x Elemente. Abhängig von der Anzahl der vorgegebenen Array-Elemente soll eine Liste von Terminen erstellt werden, die zeilenweise dargestellt werden. Die Einträge im Register sollen nacheinander entnommen und in die Aufzählung eingebunden werden. Nach einem Durchlauf des Registers beginnt die Entnahme der Elemente wieder von vorne. In jeder Zeile der Terminliste wird ein Datumswert angezeigt, der von Zeile zu Zeile um den Vorgabewert (zeitlicher Abstand im Beispiel = 7 Tage) erhöht wird.

Der Wochentag des Datumswertes und die Kalenderwoche wird angezeigt.

Vorgaben:

  • Startdatum für die Liste
  • Arrayelemente als Text
  • zeitlicher Abstand als Zahl (in Tagen)
  • Anzahl der Termine
  • Beschreibungstext (z.B. Treppenhaus)



   Beispiele:

Beispiel 01

Anzahl der Array-Elemente: 5

aaaa = new Array("Meier", "Beckers", "Schulze", "Schmitz", "Müller");
Startdatum für die Liste Treppenhaus ist Montag 07.01.2008 in der 01. Kalenderwoche.

Treppenhaus putzen Mietobjekt Breslauer Str. 22

 WerWas TagDatumKalenderwoche
MeierTreppenhausam Montag07.01.200801. Kalenderwoche
BeckersTreppenhausam Montag14.01.200802. Kalenderwoche
SchulzeTreppenhausam Montag21.01.200803. Kalenderwoche
SchmitzTreppenhausam Montag28.01.200804. Kalenderwoche
MüllerTreppenhausam Montag04.02.200805. Kalenderwoche
MeierTreppenhausam Montag11.02.200806. Kalenderwoche
BeckersTreppenhausam Montag18.02.200807. Kalenderwoche
SchulzeTreppenhausam Montag25.02.200808. Kalenderwoche
SchmitzTreppenhausam Montag03.03.200809. Kalenderwoche
MüllerTreppenhausam Montag10.03.200810. Kalenderwoche
MeierTreppenhausam Montag17.03.200811. Kalenderwoche
BeckersTreppenhausam Montag24.03.200812. Kalenderwoche
SchulzeTreppenhausam Montag31.03.200813. Kalenderwoche
SchmitzTreppenhausam Montag07.04.200814. Kalenderwoche
MüllerTreppenhausam Montag14.04.200815. Kalenderwoche
MeierTreppenhausam Montag21.04.200816. Kalenderwoche
BeckersTreppenhausam Montag28.04.200817. Kalenderwoche
SchulzeTreppenhausam Montag05.05.200818. Kalenderwoche
SchmitzTreppenhausam Montag12.05.200819. Kalenderwoche
MüllerTreppenhausam Montag19.05.200820. Kalenderwoche


Beispiel 02

Anzahl der Array-Elemente: 3

bbbb = new Array("Frühdienst", "Spätdienst", "Nachtdienst");
Startdatum für die Liste Dienstplan ist Montag 07.01.2008 in der 01. Kalenderwoche.

Schichtplan für Jupp Zupp

 DienstplanName TagDatumKalenderwoche
FrühdienstJupp Zuppam Montag05.05.200818. Kalenderwoche
SpätdienstJupp Zuppam Montag12.05.200819. Kalenderwoche
NachtdienstJupp Zuppam Montag19.05.200820. Kalenderwoche
FrühdienstJupp Zuppam Montag26.05.200821. Kalenderwoche
SpätdienstJupp Zuppam Montag02.06.200822. Kalenderwoche
NachtdienstJupp Zuppam Montag09.06.200823. Kalenderwoche
FrühdienstJupp Zuppam Montag16.06.200824. Kalenderwoche
SpätdienstJupp Zuppam Montag23.06.200825. Kalenderwoche
NachtdienstJupp Zuppam Montag30.06.200826. Kalenderwoche
FrühdienstJupp Zuppam Montag07.07.200827. Kalenderwoche
SpätdienstJupp Zuppam Montag14.07.200828. Kalenderwoche
NachtdienstJupp Zuppam Montag21.07.200829. Kalenderwoche
FrühdienstJupp Zuppam Montag28.07.200830. Kalenderwoche
SpätdienstJupp Zuppam Montag04.08.200831. Kalenderwoche
NachtdienstJupp Zuppam Montag11.08.200832. Kalenderwoche
FrühdienstJupp Zuppam Montag18.08.200833. Kalenderwoche
SpätdienstJupp Zuppam Montag25.08.200834. Kalenderwoche
NachtdienstJupp Zuppam Montag01.09.200835. Kalenderwoche
FrühdienstJupp Zuppam Montag08.09.200836. Kalenderwoche
SpätdienstJupp Zuppam Montag15.09.200837. Kalenderwoche








NACH OBEN