Almanac (Jahreskalender)

Version Product Version License Actions

Dieses Modul bietet Kalenderinformationen für Feiertage, Schulferien und andere Kalenderdaten.

Inhaltverzeichnis

  1. Funktionsumfang
  2. Voraussetzungen
  3. Installation
  4. Einrichten der Instanzen in IP-Symcon
  5. Statusvariablen und Profile
  6. WebFront
  7. PHP-Befehlsreferenz
  8. Versionshistorie

1. Funktionsumfang

Das Modul nutzt die von schulferien.eu (www.schulferien.eu) bereitgestellten Daten zur Anzeige der Feiertage und Schulferien für das gewählte Bundesland.
Darüber hinaus werden mittels der PHP Funktion "date" verschiedene Informationen für das aktuelle Datum ermittelt. In Kombination mit den ermittelten Feiertagen werden auch die Arbeitstage im aktuellen Monat bereitgestellt.

Folgende Informationen werden ermittelt:

  • Sind Ferien und welche
  • Feiertag oder nicht und wie heißt er
  • Der Tag des Jahres
  • Anzahl Tage im Monat
  • Arbeitstage im Monat
  • Schaltjahr oder nicht
  • Sommerzeit oder nicht
  • Wochenende oder nicht
  • Nummer der Kalenderwoche

All diese Information können auch über die Methode ALMANAC_GetDateInfo als Array abgeholt werden.

Folgende Informationen stehen als key => value Paare zur Verfügung:

Index Typ Beschreibung
IsSummer bool TRUE, wenn Sommerzeit ist
IsLeapYear bool TRUE, wenn Schaltjahr ist
IsWeekend bool TRUE, wenn Wochenende ist (SA-SO)
WeekNumber int Kalenderwochennummer
DaysInMonth int Anzahl Tage im Monat
DayOfYear int Tag im Jahr (1-366)
WorkingDays int Arbeitstage im Monat
Holiday string Name des Feiertags, oder "Kein Feiertag"
IsHoliday bool TRUE, wenn Feiertag ist
SchoolHolidays string Name der Schulferien, oder "Keine Ferien"
IsSchoolHolidays bool TRUE, wenn Schulferienzeit ist

HINWEIS: Das Datum sollte nur maximal +/- 1 Jahr vom aktuellen Tag entfernt liegen.

2. Voraussetzungen

  • IP-Symcon ab Version 5.0

3. Installation

  • Über den Modul Store das Modul Almanac installieren.
  • Alternativ Über das Modul-Control folgende URL hinzufügen.
    https://github.com/Wilkware/IPSymconAlmanac oder git://github.com/Wilkware/IPSymconAlmanac.git

4. Einrichten der Instanzen in IP-Symcon

  • Unter "Instanz hinzufügen" ist das ‚Almanac‘-Modul (Alias: Kalender, Schulferien, Feiertage) unter dem Hersteller ‚(Sonstige)‘ aufgeführt.

Konfigurationsseite:

Name Beschreibung
Bundesland Auswahl des Bundesland für welchen man die Feiertage und Schulferien ermittelt haben möchte.
Basis URL Url zum Dienstanbieter für Feiertage und Schulferien, derzeit https://www.schulferien.eu/downloads/ical4.php
Feiertage Status, ob Ermittlung der Feiertage erwünscht ist.
Schulferien Status, ob Ermittlung der Schulferien erwünscht ist.
Datumsfunktion Status, ob Informationen zum aktuellen Datum erwünscht sind.

5. Statusvariablen und Profile

Die Statusvariablen werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.

Name Typ Beschreibung
Feiertag String Name des Feriertages oder ‚kein Feiertag‘
Ist Feiertag Boolean Ist aktueller Tag ein Feiertag?
Ferien String Name der Schulferien oder ‚keine Ferien‘
Ist Ferienzeit Boolean Fällt aktueller Tag in die Ferien?
Ist Schaltjahr Boolean Ist aktueller Jahr ein Schaltjahr?
Ist Sommerzeit Boolean Ist aktuell Sommerzeit aktiv?
Ist Wochenende Boolean Ist gerade Wochenende?
Kalenderwoche Integer Nummer der aktuelle Kalenderwoche
Tag im Jahr Integer Welcher Tag des Jahres?
Tage im Monat Integer Wieviel Tage hat der aktuelle Monat?
Arbeitstage im Monat Integer Wieviel Arbeitstage hat der Monat des gewählten Bundeslandes?

Folgende Profile werden angelegt:

Name Typ Beschreibung
ALMANAC.Question Boolean FALSE = Nein / TRUE = Ja

6. WebFront

Man kann die Statusvariablen direkt im WF verlinken.

7. PHP-Befehlsreferenz

ALMANAC_Update(int $InstanzID): void
Holt entsprechend der Konfiguration die gewählten Daten.
Die Funktion liefert keinerlei Rückgabewert.

Beispiel: ALMANAC_Update(12345);

ALMANAC_GetDateInfo(int $InstanzID, int $Timestamp): array
Gibt für das übergebene Datum (Unix Timestamp) alle Informationen als assoziatives Array zurück.

Beispiel: ALMANAC_GetDateInfo(12345, strtotime('tomorrow'));
/* liefert z.B.
array(11) {
["IsSummer"]=> bool(true)
["IsLeapYear"]=> bool(true)
["IsWeekend"]=> bool(false)
["WeekNumber"]=> int(16)
["DaysInMonth"]=> int(30)
["DayOfYear"]=> int(108)
["WorkingDays"]=> int(20)
["Holiday"]=> string(13) "Kein Feiertag"
["IsHoliday"]=> bool(false)
["SchoolHolidays"]=> string(11) "Osterferien"
["IsSchoolHolidays"]=> bool(true)
}
*/

8. Versionshistorie

v2.0.20200416

  • NEU: Ermittlung der Arbeitstage im Monat
  • NEU: Funktion GetDateInfo für manuelles Ermitteln der Daten für ein bestimmtes Datum
  • NEU: Umstellung der Entwicklung auf Symcon StylePHP & Workflow actions

v1.2.20190813

  • NEU: Anpassungen für Module Store
  • NEU: Vereinheitlichungen, Umstellung auf Libs
  • NEU: Lokalisierung (Englisch)

v1.1.20190501

  • FIX: Name des Feiertages nicht korrekt gespeichert

v1.1.20190312

  • NEU: Vereinheitlichungen, StyleCI uvm.

v1.0.20180505

  • FIX: BugFix IPS 5.0

v1.0.20171230

  • NEU: Initialversion

Danksagung

Dieses Modul basiert auf den Ideen und Modulen von …

Vielen Dank für die hervorragende und tolle Arbeit!

Entwickler

Spenden

Die Software ist für die nicht kommzerielle Nutzung kostenlos, Schenkungen als Unterstützung für den Entwickler bitte hier:

License

Lizenz

Licence