Zitat von protestix
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
PHP-Klasse für nationale/regionale Feiertage mit SQLite-DB als Konfiguration
Einklappen
Neue Werbung 2019
Einklappen
X
-
[SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]
-
protestix : Nett von dir das du mir hier beistehen möchtest. Jedoch habe ich ja selbst zu Vorschlägen und Kritik aufgefordert wie Lotti schon bemerkt hat.
Freue mich wie immer auf Feedback sein es weitere Hinweise, Anregungen, Bedenken oder Kritik.
Für mich ist dies ein reines Hobbyprojekt um zu Testen, ob das Eingangs vorgestellte Konzept umsetzbar ist.
Die Tipps hier gehen mehr oder weniger alle in die Richtung das Ganze etwas professioneller zu gestalten. Ob und wie weit ich diese Anregungen dann umsetze ist allein meine Entscheidung. Ich stehe da nicht unter Druck.
LG jspit
- 1 Likes
Kommentar
-
Am reizvollsten wäre doch, gleich eine SQL Tabelle zu erstellen(erstellen zu lassen), wo zumindest alle europäischen Feiertage nach Ländern schon drin stehen, vielleicht für die nächsten 15-20 Jahre.
Das könnte man dann dahingehend nutzen, das man als Shopbetreiber und Versender von Produkten innerhalb der EU dem Kunden die Zustellung errechnen könnte.
Ich könnte mir vorstellen, das viele Shops das implementieren würden.
Mann bräuchte die Berechnung nur ein mal durchlaufen lassen um die Tabelle zu erstellen..
Das nur mal als Idee.
Kommentar
-
Zitat von protestix Beitrag anzeigenAm reizvollsten wäre doch, gleich eine SQL Tabelle zu erstellen(erstellen zu lassen), wo zumindest alle europäischen Feiertage nach Ländern schon drin stehen, vielleicht für die nächsten 15-20 Jahre.
Seit ich mit meiner Lib angefangen habe wurden in den paar wenigen Ländern die momentan abgedeckt sind (at, ch, cz, de, fr, it, jp, nl, uk) ein Feiertag hinzugefügt 2 verändert und 1 entfernt.
Es ist technisch kein Problem das zu machen aber der damit erzeugte Overhead würde nur dann einen zusätzlichen Zweck erfüllen, wenn man für mehrere Länder und Jahre die Feiertage gleichzeitig braucht und der Einsatzort ein eher schwachbrüstiges System ist.
Ansonsten sind die Feiertage genauso schnell berechnet wie aus der DB ausgelesen.
Kommentar
-
Feiertage ändern sich.
Achtung: In Spanien werden die Feiertage jedes Jahr neu festgelegt !
Spanien kennt nationale, regionale und lokale Feiertage. Jede Gemeinde kann maximal 14 Feiertage bestimmen, wobei bis zu neun von der Landesregierung vorgegeben werden.
Abweichungen zu unserer Liste sind also möglich! Vor allem, wenn ein Feiertag auf das Wochenende fällt, prüfen Sie bitte dessen Gültigkeit genauer!The string "()()" is not palindrom but the String "())(" is.
Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
PHP.de Wissenssammlung | Kein Support per PN
Kommentar
-
Das ist für eine programmierte Lösung ja die Hölle. Nichts ist schlimmer als ein System kontinuierlich pflegen zu müssen.
hausl auf der Seite schau ich auch immer nach und habe mich schon gefragt wie die das gelöst haben. Für die Region(z.B.: Madrid) kann man ja einen CSV Export herunterladen, der einen Zeitraum von 3 Jahren erfasst. Das ist ja dann für die Katz.
Kommentar
-
Bei den Feiertagen kommt man um eine kontinuierliche Pflege der Daten nicht umhin. Wenn das dann noch in den Skripten bei womöglich mehreren Kunden erfolgen muss ist dies richtig Arbeit.
Daher mein Versuch die Skripte möglichst nicht anzufassen und diese Information in einer Konfigurationsdatei (Bei mir eben eine kleine SQLite-DB) unterzubringen.
Diese Datei könnte dann zentral gepflegt werden und als Download bereitgestellt werden. Oder in etwa so in das Projekt integriert werden:
PHP-Code:/*
* get Config from a URL
*/
$url = "http://example.com/data/JspitHoliday.sqlite";
$tmpfname = tempnam(sys_get_temp_dir(), "holiday.sqlite");
$copyOk = copy($url,$tmpfname);
$holidaysDE = new JspitHoliday('de',$tmpfname);
LG jspit
Kommentar
-
Zitat von hausl Beitrag anzeigenBsp. Spanien legt einige jedes Jahr neu fest.
Kommentar
-
Messier 1001 : Und ich möchte mich bei dir bedanken. Die Termine für Feiertage einzelner Länder findet man relativ schnell im Netz, jedoch sind diese teilweise widersprüchlich. Zum Testen für mein Projekt stand mir da mit Niirrty.Holiday eine solide Datenbasis zur Verfügung.
Kommentar
-
Ich hab mir mal angeschaut wie einige Feiertage für Spanien mit den obigen Konzept umgesetzt werden könnte.
Nicht nur das bestimmte Feiertage Jahr für Jahr neu festgelegt werden können, auch die Regionalstruktur (Liste der Provinzen Spaniens) stellt eine Herausforderung dar.
Spanien ist in 17 Autonome Gemeinschaften und 2 Autonome Städte (Ceuta und Melilla) gegliedert (grob vergleichbar mit den Bundesländern in D). Jede dieser Autonomen Gemeinschaften haben meist mehrere Provinzen unter sich. Insgesamt sind es 50 Provinzen. In der 4.Ebene sind die Gemeinden angesiedelt.
Die Umsetzung soll am Beispiel für den Feiertag Epiphany (Heilige Drei Könige) gezeigt werden. Dieser Feiertag gilt dort landesweit. Da der Eintrag schon für AT und bestimmte Bundesländer in D schon vorhanden ist, muss nur die Region ES zugefügt werden:
Code:month: 1 day: 6 special: region: DE-BW,DE-BY,DE-ST,AT,ES
Für die Autonomen Gemeinschaften und Provinzen existieren in der ISO-Norm 3166:ES schon Abkürzungen die hier benutzt werden.
Mit dem Bezeichner ES-AN werden da alle 8 Provinzen der autonomen Gemeinschaft Andalusien erfasst. Der Bezeichner ES-AS-O steht für die Provinz Asturien (O) in der gleichnamigen Gemeinschaft Asturien (AS). Wenn die Gemeinschaft nur aus einer Provinz besteht, kann auch als Bezeichner ES-O oder nur ES-AS genommen werden., solange dies Eindeutig ist.
Dieser bedingte Feiertag wird dann wie folgt eingetragen:
Code:month: 1 day: 7 special: {{?D=Mon}} region: ES-AN,ES-AR,ES-CE,ES-CM,ES-MD-M,ES-ML,ES-AS-O,ES-CB-S
Insgesamt schätze ich ein das dies auch für Spanien umsetzbar ist, der Aufwand ist jedoch gewaltig. Bin gespannt, ob Messier 1001 die Zeit findet die Feiertage Spaniens für seine Klasse einzupflegen.
LG jspit
Kommentar
-
Zitat von jspit Beitrag anzeigenFür die Autonomen Gemeinschaften und Provinzen existieren in der ISO-Norm 3166:ES schon Abkürzungen die hier benutzt werden.
Deswegenen hab ich mich mit numerischen Indexen zufrieden gegeben. Gefällt mir aber trotzdem noch nicht wirklich. Vieleich sollte man auch beide ermöglichen.
Zitat von jspit Beitrag anzeigenDem abgestuften Regionalkonzept kommt entgegen, das mit dem Eintrag für eine Autonome Gemeinschaft in der Regel die Einträge für mehrere Provinzen erspart bleiben.
Insgesamt schätze ich ein das dies auch für Spanien umsetzbar ist, der Aufwand ist jedoch gewaltig. Bin gespannt, ob Messier 1001 die Zeit findet die Feiertage Spaniens für seine Klasse einzupflegen.
Hab am WE meine Feuture für nicht arbeitsfreie Feiertage fertig gestellt und angefangen einen Loader zu bauen um mit unterschiedlichen Quellen und Formaten klar kommt. Da hab ich genug zu tun
Kommentar
Kommentar