Feiertage Beta – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self?srt=yes Feiertage Beta Fri, 04 Nov 16 22:47:17 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679164?srt=yes#m1679164 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679164?srt=yes#m1679164 <p>Ich habe mal das Resultat meines heutigen Nachmittags auf den Server gestellt. Ein Skript, welches als Bibliothek gedacht ist um in PHP-Programmen für einzelne Tage oder ganze Kalender festzustellen, <a href="https://code.fastix.org/Projekte/PHP:Feiertage/" rel="nofollow noopener noreferrer">ob, wann und wo einer dieser störrischen Feier- und Gedenktage stattfindet</a>. Die Daten und Regeln für die Feiertage habe ich zum Wohle der Österreicher und Schweizer in einer ini-Datei versenkt, die hoffentlich selbsterklärend ist...</p> <p>Ich habe damit sogar mal einem Anwendungsfall gefunden, bei dem ich mir sicher bin, dass die Nutzung eines Objektes den Programmablauf ganz wesentlich beschleunigt: Die beiden primitiven Tests "hecheln" jeweils ein ganzes Jahr durch.</p> <p>Eigentlich ist es "Feiertage2", <a href="http://www.fastix.org/Feiertage+in+PHP+ermitteln.htm" rel="nofollow noopener noreferrer">denn die alte Version war noch ein gräßlicher Kuddelmuddel aus Programm und Daten</a> - und "geht bald über den Jordan".</p> <p><strong>Ach so: Was ich wissen will.</strong></p> <p>Habt Ihr irgendwelche Anregungen, die über die zur Laufzeit austauschbare ini-Datei hinausgehen?</p> Feiertage Beta Fri, 04 Nov 16 23:32:43 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679165?srt=yes#m1679165 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679165?srt=yes#m1679165 <p>Hi,</p> <p>Reformationstag fehlt. Ist in einigen Bundeländern Feiertag.</p> <p>1.11. ist nicht Faschingsbeginn. Da ist Allerheiligen.</p> <p>11.11. ist auch nicht Faschingsbeginn, sondern Karnevals-Anfang.</p> <p>Muttertag fehlt (2. Sonntag im Mai - laut der Seite fehlt diese Kategorie nter Wochentag im Monat komplett)</p> <p>Mariä Himmelfahrt ist in Bayern nur in Gemeinden mit überwiegend katholischer <sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> Bevölkerung Feiertag.</p> <p>(weiter hab ich's nicht angeguckt ...)</p> <p>cu,<br> Andreas a/k/a MudGuard</p> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>d.h. mit mehr katholischer als evangelischer Bevölkerung, andere Bevölkerungsanteile werden nicht berücksichtigt ... <a href="#fnref1" class="footnote-backref">↩︎</a></p> </li> </ol> </section> Feiertage Beta Sat, 05 Nov 16 00:42:34 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679167?srt=yes#m1679167 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679167?srt=yes#m1679167 <p>Hallo und guten Morgen,</p> <p>da kommt nichts...</p> <p>Server down?</p> <p>Grüße<br> TS</p> <div class="signature">-- <br> es wachse der Freifunk<br> <a href="http://freifunk-oberharz.de" rel="nofollow noopener noreferrer">http://freifunk-oberharz.de</a> </div> Feiertage Beta Sat, 05 Nov 16 05:54:38 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679170?srt=yes#m1679170 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679170?srt=yes#m1679170 <p>Gute Idee -- die INI!</p> <blockquote> <p>Habt Ihr irgendwelche Anregungen, die über die zur Laufzeit austauschbare ini-Datei hinausgehen?</p> </blockquote> <p>Um den Code aufzuteilen, habe ich eine Basisklasse, welche die fortlaufenden Tage nach Scaliger berechnet (Julianische Tage) mit nahtlosem Übergang über die Greg. Reform.</p> <p>Alles was zur Berechnung der Feiertage (Ostern nach Gauss, Adventzyklus) gehört, steckt in einer Klassenerweiterung.</p> <p>MfG</p> Feiertage Beta Sat, 05 Nov 16 08:34:16 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679175?srt=yes#m1679175 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679175?srt=yes#m1679175 <p>Hallo Tagwächter,</p> <p>schöne Fingerübung, die braucht jeder mal.</p> <p>Ich hätte folgende Hinweise für dich:</p> <ol> <li> <p>Der Unix time_t Überlauf ist am 19. Januar, darum solltest du die 32-Bit Prüfung mit dem 1. Februar oder sogar mit dem 31.12. vornehmen.</p> </li> <li> <p>Die PHP Doku erwähnt nicht, wie easter_days() mit dem Gebiet der Ostkirche umgeht. Dort gilt eine andere Osterformel. Beachtet PHP das anhand irgendwelcher Regionaleinstellungen?</p> </li> </ol> <p>Später vielleicht mehr, muss jetzt weg...</p> <p><em>Rolf</em></p> Feiertage Beta Sat, 05 Nov 16 11:32:56 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679196?srt=yes#m1679196 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679196?srt=yes#m1679196 <p>Hallo und guten Tag J.,</p> <blockquote> <p>[...] Ein Skript, welches als Bibliothek gedacht ist um in PHP-Programmen für einzelne Tage oder ganze Kalender festzustellen, <a href="https://code.fastix.org/Projekte/PHP:Feiertage/" rel="nofollow noopener noreferrer">ob, wann und wo einer dieser störrischen Feier- und Gedenktage stattfindet</a>. Die Daten und Regeln für die Feiertage habe ich zum Wohle der Österreicher und Schweizer in einer ini-Datei versenkt, die hoffentlich selbsterklärend ist...</p> </blockquote> <p>Das wäre eine Glanztat, die sicherlich für Aufmerksamkeit sorgen würde, wenn Du das Skript:</p> <ul> <li>"Web 2.0"-fähig machen würdest</li> <li>die Feiertage weltweit sammeln würdest</li> <li>gezielte Recherchen auf Überlappungen ermöglichen würdest</li> <li>die Zeitverschiebung dafür berücksichtigen würdest</li> </ul> <p>Das würde ganz vielen Kommunikationsverantwortlichen in Millionen Betrieben auf der Welt die Arbeit erleichern und der (weltweite) Dank würde Dir vermutlich ewig nachschleichen und Dich bei passenden Einträgen in "Donate Money for Benefits"-Portalen sogar erreichen!</p> <p>Ich hätte Spaß daran, bei einem solchen Projekt mitzuarbeiten!</p> <p>Und irgendwie haben die Algorithmen dafür mNm auch weite Gemeinsamkeiten mit dem Anliegen von <a href="https://forum.selfhtml.org/self/2016/nov/4/begriff-strich-terminologie-gesucht-zu-auswahloption-konfigurator-per-html-o-skript/1679122#m1679122" rel="noopener noreferrer">Produktkonfigurator entwickeln</a></p> <p>Grüße<br> TS</p> <div class="signature">-- <br> es wachse der Freifunk<br> <a href="http://freifunk-oberharz.de" rel="nofollow noopener noreferrer">http://freifunk-oberharz.de</a> </div> Feiertage Beta Mon, 07 Nov 16 19:50:37 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679426?srt=yes#m1679426 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679426?srt=yes#m1679426 <p>Ein Bekannter hat kürzlich auch so was gemacht. Vielleicht interessant: <a href="https://github.com/hausl/HolidayCalendar" rel="noopener noreferrer">https://github.com/hausl/HolidayCalendar</a></p> Feiertage Beta Thu, 10 Nov 16 09:48:03 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679640?srt=yes#m1679640 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679640?srt=yes#m1679640 <blockquote> <p>Habt Ihr irgendwelche Anregungen, die über die zur Laufzeit austauschbare ini-Datei hinausgehen?</p> </blockquote> <p>Ja noch was: Ich habe über meine Kalenderprogramme sehr viele Anfragen zu Christlichen Feiertagen in Jahren weit vor 1970.</p> Feiertage Beta Fri, 04 Nov 16 23:55:24 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679166?srt=yes#m1679166 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679166?srt=yes#m1679166 <p>Danke!</p> <blockquote> <p>Reformationstag fehlt. Ist in einigen Bundeländern Feiertag.</p> </blockquote> <p>[x] eingefügt</p> <blockquote> <p>1.11. ist nicht Faschingsbeginn. Da ist Allerheiligen.</p> </blockquote> <p>[x] eingefügt</p> <blockquote> <p>11.11. ist auch nicht Faschingsbeginn, sondern Karnevals-Anfang.</p> </blockquote> <p>[x] korrigiert und umbenannt</p> <blockquote> <p>Muttertag fehlt (2. Sonntag im Mai - laut der Seite fehlt diese Kategorie nter Wochentag im Monat komplett)</p> </blockquote> <p>[ ] Oh je. N-ter Wochentag im Monat. Da muss ich drüber schlafen. Und kann dann wohl auch gleich die Zeitumstellung und "ordre mufti" (einmaliger bundesweiter Reformationstag 2017) mit berücksichtigen.</p> <blockquote> <p>Mariä Himmelfahrt ist in Bayern nur in Gemeinden mit überwiegend katholischer [^1] Bevölkerung Feiertag.</p> </blockquote> <p>[x] Datum und Code eingefügt</p> Feiertage Beta Thu, 10 Nov 16 17:40:25 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679696?srt=yes#m1679696 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679696?srt=yes#m1679696 <blockquote> <p>Muttertag fehlt (2. Sonntag im Mai - laut der Seite fehlt diese Kategorie unter Wochentag im Monat komplett)</p> </blockquote> <p>]x] erledigt!</p> <p>Ich hoffe, es ist nicht zu schwierig etwas wie</p> <pre><code class="block language-ini"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">MO_WT_WO</span><span class="token punctuation">]</span></span> <span class="token comment"># Mai[5], Sonntag[7], zweiter[2] im Monat</span> <span class="token key attr-name">crontab[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">5,7,2</span>"</span> <span class="token key attr-name">name[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">Muttertag</span>"</span> <span class="token key attr-name">codes[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">""</span> <span class="token key attr-name">notBefore[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token key attr-name">notAfter[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token comment"># März[3], Sonntag[7], letzter[L] im Monat</span> <span class="token key attr-name">crontab[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">3,7,L</span>"</span> <span class="token key attr-name">name[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">Umstellung auf Sommerzeit</span>"</span> <span class="token key attr-name">codes[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">""</span> <span class="token key attr-name">notBefore[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token key attr-name">notAfter[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token comment"># Oktober[10], Sonntag[7, letzter[L] im Monat</span> <span class="token key attr-name">crontab[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">10,7,L</span>"</span> <span class="token key attr-name">name[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">Umstellung auf Winterzeit</span>"</span> <span class="token key attr-name">codes[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">""</span> <span class="token key attr-name">notBefore[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token key attr-name">notAfter[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token comment"># November[11], Sonntag[7], erster[1] im Monat</span> <span class="token key attr-name">crontab[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">11,7,1</span>"</span> <span class="token key attr-name">name[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">Reformationstag (Schweiz)</span>"</span> <span class="token key attr-name">codes[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">""</span> <span class="token key attr-name">notBefore[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token key attr-name">notAfter[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> </code></pre> <p>zu ergänzen, wenn weitere solcher Tage ermittelt werden sollen.</p> Feiertage Beta Thu, 10 Nov 16 17:41:49 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679697?srt=yes#m1679697 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679697?srt=yes#m1679697 <blockquote> <p>Muttertag fehlt (2. Sonntag im Mai - laut der Seite fehlt diese Kategorie unter Wochentag im Monat komplett)</p> </blockquote> <p>]x] erledigt!</p> <p>Ich hoffe, es ist nicht zu schwierig etwas wie</p> <pre><code class="block language-ini"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">MO_WT_WO</span><span class="token punctuation">]</span></span> <span class="token comment"># Mai[5], Sonntag[7], zweiter[2] im Monat</span> <span class="token key attr-name">crontab[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">5,7,2</span>"</span> <span class="token key attr-name">name[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">Muttertag</span>"</span> <span class="token key attr-name">codes[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">""</span> <span class="token key attr-name">notBefore[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">1923</span>"</span> <span class="token key attr-name">notAfter[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token comment"># März[3], Sonntag[7], letzter[L] im Monat</span> <span class="token key attr-name">crontab[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">3,7,L</span>"</span> <span class="token key attr-name">name[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">Umstellung auf Sommerzeit</span>"</span> <span class="token key attr-name">codes[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">""</span> <span class="token key attr-name">notBefore[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token key attr-name">notAfter[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token comment"># Oktober[10], Sonntag[7, letzter[L] im Monat</span> <span class="token key attr-name">crontab[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">10,7,L</span>"</span> <span class="token key attr-name">name[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">Umstellung auf Winterzeit</span>"</span> <span class="token key attr-name">codes[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">""</span> <span class="token key attr-name">notBefore[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token key attr-name">notAfter[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token comment"># November[11], Sonntag[7], erster[1] im Monat</span> <span class="token key attr-name">crontab[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">11,7,1</span>"</span> <span class="token key attr-name">name[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">Reformationstag (Schweiz)</span>"</span> <span class="token key attr-name">codes[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">""</span> <span class="token key attr-name">notBefore[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> <span class="token key attr-name">notAfter[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">~</span>"</span> </code></pre> <p>zu ergänzen, wenn weitere solcher Tage ermittelt werden sollen.</p> Feiertage Beta Sat, 05 Nov 16 08:15:55 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679171?srt=yes#m1679171 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679171?srt=yes#m1679171 <p>Hallo Tagwächter,</p> <blockquote> <p>Und kann dann wohl auch gleich […] und "ordre mufti" (einmaliger bundesweiter Reformationstag 2017) mit berücksichtigen.</p> </blockquote> <p>Warum „par or­d­re du muf­ti“? Sind nicht alle Feiertage „par or­d­re du muf­ti“?</p> <p>Man verwendet „par or­d­re du muf­ti“ häufig, wenn es keinen sachlichen Grund für eine Anweisung gibt. Den sehe beim 500. Jubiläum schon.</p> <p>Außerdem gibt es wieder <a href="http://www.ad-hoc-news.de/ekd-ratsvorsitzender-wuenscht-sich-zwei-neue-feiertage--/de/News/51733160" rel="nofollow noopener noreferrer">aktuelle Vorstöße</a>, den Reformationstag und auch den Buß- und Bettag als bundesweite Feiertage einzuführen.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Dieses Forum nutzt Markdown. Im <a href="https://wiki.selfhtml.org" rel="nofollow noopener noreferrer">Wiki</a> erhalten Sie <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Hilfe bei der Formatierung Ihrer Beiträge</a>. </div> Feiertage Beta Sat, 05 Nov 16 01:04:15 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679168?srt=yes#m1679168 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679168?srt=yes#m1679168 <p>Naja. Gegen zwei Uhr ist es wegen der dynamischen IP manchmal schwierig. (Einwahl, IP-Cache des Firefox)</p> Feiertage Beta Sat, 05 Nov 16 08:25:53 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679172?srt=yes#m1679172 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679172?srt=yes#m1679172 <blockquote> <p>Gute Idee -- die INI!</p> </blockquote> <p>Danke. Die ini ist einfacher zu editieren als JSON . Kann ja sein, irgendwer will mal Geburtstage mit einbauen ...</p> <p>Ich ja so ein Perormance-Fuzzi und die Test-Skripte brauchen schon einen bedeutenden Teil einer Sekunde.</p> <p>Ich bin mir noch nicht ganz sicher ob ich INI nicht die irgendwie nach json "compiliere" (nachfolgend könnten schon einige Prüfungen wegfallen) und ob das einen Performanceschub gibt oder ob ich ganze Jahre (als JSON) cachen sollte. Dazu müsste ich aber bei jedem Abruf das Änderungsdatum der ini mit dem Cache vergleichen oder diesen manuell löschen.</p> <p>Wobei: <a href="https://home.fastix.org/Tests/PHP:Feiertage/test-feiertage-2017-1.php" rel="nofollow noopener noreferrer">Wenn ich nur einen Monat durchhechele</a>, was ja auch der häufigste Anwendungsfall sein wird, dann bin ich (auf dem Banana Pi!) bei 20 .. 30 Millisekunden. Mal sehen, wo ich das noch hinbekommen.</p> Feiertage Beta Sat, 05 Nov 16 08:33:25 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679174?srt=yes#m1679174 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679174?srt=yes#m1679174 <blockquote> <p>Warum „par or­d­re du muf­ti“? Sind nicht alle Feiertage „par or­d­re du muf­ti“?</p> </blockquote> <p>Ja, schon. Aber ein einmaliger Feiertag? Wobei es mir durchaus als "erlaubt" erscheint, dass die „or­d­re du muf­ti“ das Interesse der Programmierer nicht in den Vordergund stellt. Aber ein wenig motzen darf man da doch dennoch- oder?</p> Feiertage Beta Sat, 05 Nov 16 08:55:22 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679178?srt=yes#m1679178 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679178?srt=yes#m1679178 <blockquote> <p>Außerdem gibt es wieder <a href="http://www.ad-hoc-news.de/ekd-ratsvorsitzender-wuenscht-sich-zwei-neue-feiertage--/de/News/51733160" rel="nofollow noopener noreferrer">aktuelle Vorstöße</a>, den Reformationstag und auch den Buß- und Bettag als bundesweite Feiertage einzuführen.</p> </blockquote> <p>Hm. Es waren nur übersichtliche Änderungen in INI und Programm erforderlich. <a href="https://home.fastix.org/Tests/PHP:Feiertage/test-feiertage-2017-1.php" rel="nofollow noopener noreferrer">Der 2017er Reformationstag klappt jetzt</a>. Wobei mich das Ganze zu der Frage führt, ob ich nicht Begrenzungen im Sinne von notBevore und notAfter für jeden der Feiertage einführen sollte. Damit wäre die künftige Einführung, die Abschaffung und auch die Einmaligkeit "erschlagen"...</p> Feiertage Beta Tue, 08 Nov 16 11:55:31 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679494?srt=yes#m1679494 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679494?srt=yes#m1679494 <p>Hallo</p> <blockquote> <p>Man verwendet „par or­d­re du muf­ti“ häufig, wenn es keinen sachlichen Grund für eine Anweisung gibt. Den sehe beim 500. Jubiläum schon.</p> </blockquote> <p>Wegen der Erfindung des Tesa-Films? ;-)</p> <blockquote> <p>Außerdem gibt es wieder <a href="http://www.ad-hoc-news.de/ekd-ratsvorsitzender-wuenscht-sich-zwei-neue-feiertage--/de/News/51733160" rel="nofollow noopener noreferrer">aktuelle Vorstöße</a>, den Reformationstag und auch den Buß- und Bettag als bundesweite Feiertage einzuführen.</p> </blockquote> <p>Bloß nicht! Das brächte unsere Wirtschaft an den Rand des Ruins!</p> <p>Tschö, Auge</p> <div class="signature">-- <br> Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.<br> Wolfgang Schneidewind <strong>*prust*</strong> </div> Feiertage Beta Sat, 05 Nov 16 09:35:43 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679182?srt=yes#m1679182 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679182?srt=yes#m1679182 <blockquote> <p>Ich bin mir noch nicht ganz sicher ob ich INI nicht die irgendwie nach json "compiliere"</p> </blockquote> <p>Compilieren ja, aber JSON ist auch nicht performanter im Serialisieren. Wenn Du was wirklich Schnelles haben willst, serialisiere byteorientiert auf Low-Level. Mit untenstehendem Algorithmus (den ich auch irgendwo in PHP habe) liest mein FW den gesamten Content (derzeit ca. 300 Einzelseiten) aus einer Bytesequenz mit ca. 1 MB, das geht ratz fatz. Die Datenstruktur ist nach dem Muster Entity-Attribute-Value, was genauso auch zu einer ini-Datei passt.</p> <p>Evntl. sparst Du Dir aber auch den Umweg über die ini und baust Dir gleich ein <a href="http://rolfrost.de/editbin.html" rel="nofollow noopener noreferrer">Backend</a> für die Binary.</p> <pre><code class="block language-perl"> <span class="token keyword">package</span> EAVHandle<span class="token punctuation">;</span> <span class="token keyword">use</span> strict<span class="token punctuation">;</span> <span class="token keyword">use</span> warnings<span class="token punctuation">;</span> <span class="token keyword">sub</span> <span class="token function">handle2eav</span><span class="token punctuation">{</span> <span class="token keyword">my</span> <span class="token variable">$pkg</span> <span class="token operator">=</span> shift<span class="token punctuation">;</span> <span class="token keyword">my</span> <span class="token variable">$fh</span> <span class="token operator">=</span> shift<span class="token punctuation">;</span> seek <span class="token variable">$fh</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">;</span> <span class="token keyword">my</span> <span class="token variable">%eav</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">while</span><span class="token punctuation">(</span> read<span class="token punctuation">(</span><span class="token variable">$fh</span><span class="token punctuation">,</span> <span class="token keyword">my</span> <span class="token variable">$buffer</span><span class="token punctuation">,</span> <span class="token number">12</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">my</span><span class="token punctuation">(</span><span class="token variable">$elen</span><span class="token punctuation">,</span> <span class="token variable">$alen</span><span class="token punctuation">,</span> <span class="token variable">$vlen</span><span class="token punctuation">)</span> <span class="token operator">=</span> unpack <span class="token string">"NNN"</span><span class="token punctuation">,</span> <span class="token variable">$buffer</span><span class="token punctuation">;</span> read<span class="token punctuation">(</span><span class="token variable">$fh</span><span class="token punctuation">,</span> <span class="token keyword">my</span> <span class="token variable">$ent</span><span class="token punctuation">,</span> <span class="token variable">$elen</span><span class="token punctuation">)</span><span class="token punctuation">;</span> read<span class="token punctuation">(</span><span class="token variable">$fh</span><span class="token punctuation">,</span> <span class="token keyword">my</span> <span class="token variable">$att</span><span class="token punctuation">,</span> <span class="token variable">$alen</span><span class="token punctuation">)</span><span class="token punctuation">;</span> read<span class="token punctuation">(</span><span class="token variable">$fh</span><span class="token punctuation">,</span> <span class="token keyword">my</span> <span class="token variable">$val</span><span class="token punctuation">,</span> <span class="token variable">$vlen</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$eav</span><span class="token punctuation">{</span><span class="token variable">$ent</span><span class="token punctuation">}</span><span class="token punctuation">{</span><span class="token variable">$att</span><span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token variable">$val</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">return</span> <span class="token operator">\</span><span class="token variable">%eav</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">sub</span> <span class="token function">ea</span><span class="token v-string string">v2</span>str<span class="token punctuation">{</span> <span class="token keyword">my</span> <span class="token variable">$pkg</span> <span class="token operator">=</span> shift<span class="token punctuation">;</span> <span class="token keyword">my</span> <span class="token variable">$ref</span> <span class="token operator">=</span> shift<span class="token punctuation">;</span> <span class="token keyword">my</span> <span class="token variable">$CONTENT</span> <span class="token operator">=</span> <span class="token string">''</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token keyword">my</span> <span class="token variable">$ent</span><span class="token punctuation">(</span>keys <span class="token variable">%</span><span class="token punctuation">{</span><span class="token variable">$ref</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">foreach</span> <span class="token keyword">my</span> <span class="token variable">$att</span><span class="token punctuation">(</span>sort <span class="token punctuation">{</span><span class="token variable">$b</span> <span class="token operator">cmp</span> <span class="token variable">$a</span><span class="token punctuation">}</span> keys <span class="token variable">%</span><span class="token punctuation">{</span><span class="token variable">$ref</span><span class="token operator">-></span><span class="token punctuation">{</span><span class="token variable">$ent</span><span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">my</span> <span class="token variable">$val</span> <span class="token operator">=</span> <span class="token variable">$ref</span><span class="token operator">-></span><span class="token punctuation">{</span><span class="token variable">$ent</span><span class="token punctuation">}</span><span class="token punctuation">{</span><span class="token variable">$att</span><span class="token punctuation">}</span> <span class="token operator">||</span> <span class="token string">''</span><span class="token punctuation">;</span> <span class="token variable">$CONTENT</span> <span class="token operator">.=</span> pack<span class="token punctuation">(</span><span class="token string">"NNN"</span><span class="token punctuation">,</span> length <span class="token variable">$ent</span><span class="token punctuation">,</span> length <span class="token variable">$att</span><span class="token punctuation">,</span> length <span class="token variable">$val</span><span class="token punctuation">)</span><span class="token operator">.</span><span class="token variable">$ent</span><span class="token operator">.</span><span class="token variable">$att</span><span class="token operator">.</span><span class="token variable">$val</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">return</span> <span class="token variable">$CONTENT</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">sub</span> <span class="token function">ea</span><span class="token v-string string">v2</span>handle<span class="token punctuation">{</span> <span class="token keyword">my</span> <span class="token variable">$pkg</span> <span class="token operator">=</span> shift<span class="token punctuation">;</span> <span class="token keyword">my</span> <span class="token variable">$ref</span> <span class="token operator">=</span> shift<span class="token punctuation">;</span> <span class="token keyword">my</span> <span class="token variable">$fh</span> <span class="token operator">=</span> shift<span class="token punctuation">;</span> seek<span class="token punctuation">(</span><span class="token variable">$fh</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> truncate<span class="token punctuation">(</span><span class="token variable">$fh</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token keyword">my</span> <span class="token variable">$ent</span><span class="token punctuation">(</span>keys <span class="token variable">%</span><span class="token punctuation">{</span><span class="token variable">$ref</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">foreach</span> <span class="token keyword">my</span> <span class="token variable">$att</span><span class="token punctuation">(</span>sort <span class="token punctuation">{</span><span class="token variable">$b</span> <span class="token operator">cmp</span> <span class="token variable">$a</span><span class="token punctuation">}</span> keys <span class="token variable">%</span><span class="token punctuation">{</span><span class="token variable">$ref</span><span class="token operator">-></span><span class="token punctuation">{</span><span class="token variable">$ent</span><span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">my</span> <span class="token variable">$val</span> <span class="token operator">=</span> <span class="token variable">$ref</span><span class="token operator">-></span><span class="token punctuation">{</span><span class="token variable">$ent</span><span class="token punctuation">}</span><span class="token punctuation">{</span><span class="token variable">$att</span><span class="token punctuation">}</span> <span class="token operator">||</span> <span class="token string">''</span><span class="token punctuation">;</span> <span class="token variable">$fh</span><span class="token operator">-></span><span class="token keyword">print</span><span class="token punctuation">(</span> pack<span class="token punctuation">(</span><span class="token string">"NNN"</span><span class="token punctuation">,</span> length <span class="token variable">$ent</span><span class="token punctuation">,</span> length <span class="token variable">$att</span><span class="token punctuation">,</span> length <span class="token variable">$val</span><span class="token punctuation">)</span><span class="token operator">.</span><span class="token variable">$ent</span><span class="token operator">.</span><span class="token variable">$att</span><span class="token operator">.</span><span class="token variable">$val</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token number">1</span><span class="token punctuation">;</span> </code></pre> Feiertage Beta Sat, 05 Nov 16 11:52:07 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679198?srt=yes#m1679198 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679198?srt=yes#m1679198 <p>Hallo und guten Morgen,</p> <blockquote> <blockquote> <p>Gute Idee -- die INI!</p> </blockquote> <p>Danke. Die ini ist einfacher zu editieren als JSON . Kann ja sein, irgendwer will mal Geburtstage mit einbauen ...</p> </blockquote> <p>Und auch per PHP-Addon-Funktion <a href="https://wiki.selfhtml.org/wiki/PHP/Anwendung_und_Praxis/INI-Datei_aus_einem_Array_erstellen" rel="nofollow noopener noreferrer">ini_write()</a> durch ein Programm ...</p> <p>Grüße<br> TS</p> <div class="signature">-- <br> es wachse der Freifunk<br> <a href="http://freifunk-oberharz.de" rel="nofollow noopener noreferrer">http://freifunk-oberharz.de</a> </div> Feiertage Beta Sat, 05 Nov 16 08:42:45 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679176?srt=yes#m1679176 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679176?srt=yes#m1679176 <p>Hallo Tagwächter,</p> <blockquote> <p>Wobei es mir durchaus als "erlaubt" erscheint, dass die „or­d­re du muf­ti“ das Interesse der Programmierer nicht in den Vordergund stellt.</p> </blockquote> <p>Warum sollte das Interesse der Programmierer im Vordergrund stehen? ;-) Als ob irgendjemand irgendwann überhaupt einmal an die Befindlichkeiten eines Programmierers denken würde. Da heißt es doch immer nur „Mach ma!“</p> <blockquote> <p>Aber ein einmaliger Feiertag?</p> </blockquote> <p>Gerade der ist mMn. eben nicht „par or­d­re du muf­ti“</p> <blockquote> <p>Aber ein wenig motzen darf man da doch dennoch- oder?</p> </blockquote> <p>Aus Programmierersicht? Aus Arbeitnehmersicht? ;-)</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Dieses Forum nutzt Markdown. Im <a href="https://wiki.selfhtml.org" rel="nofollow noopener noreferrer">Wiki</a> erhalten Sie <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Hilfe bei der Formatierung Ihrer Beiträge</a>. </div> Feiertage Beta Sat, 05 Nov 16 08:54:31 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679177?srt=yes#m1679177 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679177?srt=yes#m1679177 <p>Tach!</p> <blockquote> <blockquote> <p>Warum „par or­d­re du muf­ti“? Sind nicht alle Feiertage „par or­d­re du muf­ti“?</p> </blockquote> <p>Ja, schon. Aber ein einmaliger Feiertag? Wobei es mir durchaus als "erlaubt" erscheint, dass die „or­d­re du muf­ti“ das Interesse der Programmierer nicht in den Vordergund stellt. Aber ein wenig motzen darf man da doch dennoch- oder?</p> </blockquote> <p>Das lohnt sich aber nicht. Im praktischen Leben gibt es auch noch Brückentage und andere Gelegenheiten, an denen beim potentiellen Verwender die Arbeit ruht. Die sind so individuell, dass man sowieso eine Möglichkeit zum Hinzufügen eigener Datümer benötigt. Da kann man dann auch solche Tage eingeben.</p> <p>dedlfix.</p> Feiertage Beta Sat, 05 Nov 16 09:12:39 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679180?srt=yes#m1679180 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679180?srt=yes#m1679180 <blockquote> <ol> <li>Der Unix time_t Überlauf ist am 19. Januar, darum solltest du die 32-Bit Prüfung mit dem 1. Februar oder sogar mit dem 31.12. vornehmen.</li> </ol> </blockquote> <p>[x] Erledigt</p> <blockquote> <ol start="2"> <li>Die PHP Doku erwähnt nicht, wie easter_days() mit dem Gebiet der Ostkirche umgeht. Dort gilt eine andere Osterformel. Beachtet PHP das anhand irgendwelcher Regionaleinstellungen?</li> </ol> </blockquote> <p>[!] easter_days() ist ohnehin eine Funktion, über die ich mir noch Gedanken machen muss, weil die auf hhvm nicht existiert...</p> <p>[?] Und wenn ich dabei bin: russisch-orthodoxe Kirchen/Gemeinden gibt es durchaus auch in Deutschland, Frankreich, meinetwegen Malta. Wenn ich diese berücksichtige, dann müsste ich aber erst recht islamische und jüdische Feiertage berücksichtigen. Da muss ich dann aber stark aufpassen, weil ich z.B. nicht den Ramadan oder dessen Ende "verkünden" darf (mit dem Wort "voraussichtlich" aber schon)</p> Feiertage Beta Sat, 05 Nov 16 09:15:30 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679181?srt=yes#m1679181 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679181?srt=yes#m1679181 <blockquote> <blockquote> <p>Aber ein wenig motzen darf man da doch dennoch- oder?</p> </blockquote> </blockquote> <blockquote> <p>Das lohnt sich aber nicht.</p> </blockquote> <p>Ich hab das 3x gelesen und dann hoffentlich begriffen: Du meinst mit <em>"lohnt sich nicht"</em> doch das <em>"motzen"</em> - oder?</p> <blockquote> <p>dass man sowieso eine Möglichkeit zum Hinzufügen eigener Datümer benötigt. Da kann man dann auch solche Tage eingeben.</p> </blockquote> <p>Oh je. Einen auch für Laien sicher und komfortabel zu bedienenden Editor/Generator für die INI?</p> <p>Das wird quasi ein eigenes Projekt.</p> Feiertage Beta Sat, 05 Nov 16 09:54:22 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679185?srt=yes#m1679185 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679185?srt=yes#m1679185 <p>Hallo Tagwächter,</p> <blockquote> <p>Hm. Es waren nur übersichtliche Änderungen in INI und Programm erforderlich. <a href="https://home.fastix.org/Tests/PHP:Feiertage/test-feiertage-2017-1.php" rel="nofollow noopener noreferrer">Der 2017er Reformationstag klappt jetzt</a>. Wobei mich das Ganze zu der Frage führt, ob ich nicht Begrenzungen im Sinne von notBevore und notAfter für jeden der Feiertage einführen sollte. Damit wäre die künftige Einführung, die Abschaffung und auch die Einmaligkeit "erschlagen"...</p> </blockquote> <p>Before ;-)</p> <p>Und man kann auch Feiertage verschieben, zum Beispiel den 17. Juni auf den 3. Oktober. Ich weiß man kann sie dann auch unterschiedlich benennen. Aber wenn die einfach Nationalfeiertag Deutschland heißen, hast du eine Verschiebung.</p> <p>Und ich frage mich gerade, ob sich der Aufwand lohnt. Ich habe (mit meinen nicht wirklich überragenden Programmierkenntnissen) mehrere Anläufe getätigt, die Seitenerstellung auf brückentage.info zu automatisieren und bin (für mich) zu der Erkenntnis gelangt, dass eine händische Bearbeitung der Seiten zielführender ist. Für die <a href="http://xn--brckentage-beb.info/2016/feriendichte-2016.php" rel="nofollow noopener noreferrer">Feriendichte</a> erstelle ich zum Beispiel in excel Dateien, die dann als CSV importiert werden und ein wenig mit suchen und ersetzen aufgehübscht werden.</p> <p>Im Ergebnis sieht das dann so aus: (April 2017)</p> <pre><code class="block language-php"><span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Sa'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'So'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'Mo'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'Di'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'Mi'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'Do'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'Fr'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">4.25</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//be</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">3.06</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//br</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">3</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">13.16</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//bw</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">4</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">15.34</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//by</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">5</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">0.67</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//hb</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">6</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">2.19</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//hh</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">7</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">7.42</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//he</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">8</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">2.00</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//mv</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">9</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">9.68</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//ni</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">10</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">21.82</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//nw</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">11</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">4.89</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//rp</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">12</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">1.24</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//sa</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">13</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">5.07</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//sn</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">14</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">2.85</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//st</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">15</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">3.47</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//sh</span> <span class="token variable">$daten</span><span class="token punctuation">[</span><span class="token number">16</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token number">2.73</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//th</span> <span class="token variable">$feiertage</span><span class="token punctuation">[</span><span class="token number">14</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Karfreitag'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'bef'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$feiertage</span><span class="token punctuation">[</span><span class="token number">16</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Ostersonntag'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'bef'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$feiertage</span><span class="token punctuation">[</span><span class="token number">17</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Ostermontag'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'bef'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>gemeldete oder selbst gefundene Fehler kann ich dann dort korrigieren und muss nicht in einer relativ komplizierten Programmierlogik suchen, wo etwas falsch läuft und warum das im Mai 2015 klappt aber im Juni 2017 nicht.</p> <p>Die Feiertage habe ich in einer kleinen Datenbank abgebildet. Bundesland und Feiertag als Entitätsmengen, BL_hat_FT alsRelationsship. Das Datum als Attribut. Der Reformationstag_2017 ist ein eigenes Entity. Das funktioniert zuverlässig. Dass ich da jedes Jahr wiederkehrende Aufgaben zu lösen habe, die auch eine gewisse Zeit benötigen, nehme ich gern in Kauf.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Dieses Forum nutzt Markdown. Im <a href="https://wiki.selfhtml.org" rel="nofollow noopener noreferrer">Wiki</a> erhalten Sie <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Hilfe bei der Formatierung Ihrer Beiträge</a>. </div> Feiertage Beta Sat, 05 Nov 16 10:30:09 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679189?srt=yes#m1679189 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679189?srt=yes#m1679189 <blockquote> <blockquote> <p>Ostkirche, Osterformel?</p> </blockquote> <p>[!] easter_days() ist ohnehin eine Funktion, über die ich mir noch Gedanken machen muss, weil die auf hhvm nicht existiert...</p> </blockquote> <p>So schwer ist die Osterformel nicht, steht in der Wikipedia. Du musst sie ja nur anwenden, nicht verstehen (da steckt einiges an astronomischen Tabellen drin, die für einen gewissen Zeitraum formelmäßig gefasst sind).</p> <p>Vermutlich bin ich mit meinem Hinweis auf die Ostkirchen auch über das Ziel hinaus geschossen, weil du ja selbst sagtest, dass du dich auf den DACH-Bereich konzentriert hast.</p> <p><em>Rolf</em></p> Feiertage Beta Sat, 05 Nov 16 09:38:54 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679183?srt=yes#m1679183 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679183?srt=yes#m1679183 <p>Tach!</p> <blockquote> <p>Ich hab das 3x gelesen und dann hoffentlich begriffen: Du meinst mit <em>"lohnt sich nicht"</em> doch das <em>"motzen"</em> - oder?</p> </blockquote> <p>Ja, weil vergeudete Energie, die man sinnvoller einsetzen kann.</p> <blockquote> <p>Oh je. Einen auch für Laien sicher und komfortabel zu bedienenden Editor/Generator für die INI?</p> </blockquote> <p>Nicht unbedingt. Ein verständliches Datenformat reicht für den Anfang. Die Frage ist ja, welche Zielgruppe du hast. Du stellst ja keinen Cloudservice bereit, den Lieschen Müller nutzen soll. Stattdessen ist es ein Stück Programmcode, der irgendwo eingebunden werden soll. Wer machst sowas? Ein Techniker, mehr oder weniger. Zielgruppe ist also erstmal diese Personengruppe.</p> <p>dedlfix.</p> Feiertage Beta Sat, 05 Nov 16 22:31:27 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679234?srt=yes#m1679234 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679234?srt=yes#m1679234 <blockquote> <blockquote> <p>Ich bin mir noch nicht ganz sicher ob ich INI nicht die irgendwie nach json "compiliere"</p> </blockquote> <p>Compilieren ja, aber JSON ist auch nicht performanter im Serialisieren. Wenn Du was wirklich Schnelles haben willst, serialisiere byteorientiert auf Low-Level. Mit untenstehendem Algorithmus (den ich auch irgendwo in PHP habe) liest mein FW den gesamten Content (derzeit ca. 300 Einzelseiten) aus einer Bytesequenz mit ca. 1 MB, das geht ratz fatz.</p> </blockquote> <p>„ratz fatz“ ist gar nichts! JSON-Parser erreichen mühelos Geschwindigkeiten von „volle pulle“!</p> Feiertage Beta Sat, 05 Nov 16 17:43:36 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679219?srt=yes#m1679219 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679219?srt=yes#m1679219 <blockquote> <p>Before ;-)</p> </blockquote> <p>Das merk ich mir diesmal hoffentlich.</p> <blockquote> <p>Dateien, die dann als CSV importiert werden und ein wenig mit suchen und ersetzen aufgehübscht werden.</p> </blockquote> <p>Solche Sachen mach ich auch gern:</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$arf</span> <span class="token operator">=</span> <span class="token function">file</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'easter.csv'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$arr</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$arf</span> <span class="token keyword">as</span> <span class="token variable">$row</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">list</span><span class="token punctuation">(</span><span class="token variable">$d</span><span class="token punctuation">,</span> <span class="token variable">$m</span><span class="token punctuation">,</span> <span class="token variable">$y</span><span class="token punctuation">)</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">' '</span><span class="token punctuation">,</span> <span class="token function">trim</span><span class="token punctuation">(</span><span class="token variable">$row</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$arr</span><span class="token punctuation">[</span><span class="token variable">$y</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">mktime</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token variable">$m</span><span class="token punctuation">,</span> <span class="token variable">$d</span><span class="token punctuation">,</span> <span class="token variable">$y</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token function">file_put_contents</span> <span class="token punctuation">(</span><span class="token string single-quoted-string">'easterDate.php'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'<?php function easterDate($y) { $arr = '</span> <span class="token operator">.</span> <span class="token function">preg_replace</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'/\s\s+/'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">' '</span><span class="token punctuation">,</span> <span class="token function">var_export</span><span class="token punctuation">(</span><span class="token variable">$arr</span><span class="token punctuation">,</span> <span class="token constant boolean">true</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'; return $arr[$y];}'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </span></code></pre> <p>Ausschnitt aus easter.csv:</p> <pre><code class="block language-csv"><span class="token value">4 4 2010</span> <span class="token value">24 4 2011</span> <span class="token value">8 4 2012</span> <span class="token value">31 3 2013</span> <span class="token value">20 4 2014</span> <span class="token value">5 4 2015</span> <span class="token value">27 3 2016</span> <span class="token value">16 4 2017</span> <span class="token value">1 4 2018</span> <span class="token value">21 4 2019</span> <span class="token value">12 4 2020</span> <span class="token value">4 4 2021</span> <span class="token value">17 4 2022</span> <span class="token value">9 4 2023</span> <span class="token value">31 3 2024</span> </code></pre> <p>Das ergibt dann einen ziemlich heftigen "Einzeiler":</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">function</span> <span class="token function-definition function">easterDate</span><span class="token punctuation">(</span><span class="token variable">$y</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$arr</span> <span class="token operator">=</span> <span class="token keyword">array</span> <span class="token punctuation">(</span> <span class="token number">1700</span> <span class="token operator">=></span> <span class="token operator">-</span><span class="token number">8511699600</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token operator">...</span><span class="token punctuation">]</span> <span class="token punctuation">,</span> <span class="token number">2299</span> <span class="token operator">=></span> <span class="token number">10391324400</span><span class="token punctuation">,</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token variable">$arr</span><span class="token punctuation">[</span><span class="token variable">$y</span><span class="token punctuation">]</span><span class="token punctuation">;</span><span class="token punctuation">}</span> </span></code></pre> <p>Irgendwann vorher sahen die Daten so aus ...</p> <p><a href="https://www.assa.org.au/edm" rel="nofollow noopener noreferrer">https://www.assa.org.au/edm</a></p> <p>Aber kate kann reguläre Ausdrücke ... damit war das in Minuten umgefummelt.</p> <p>Nur leider war das für die Katz, denn wie die Tests ergaben ist die Funktion mit dem return aus dem Array signifikanter langsamer als</p> <pre><code class="block language-php"><span class="token keyword">function</span> <span class="token function-definition function">easterDate</span><span class="token punctuation">(</span><span class="token variable">$y</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token punctuation">(</span> <span class="token function">mktime</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">21</span> <span class="token operator">+</span> <span class="token function">easter_days</span><span class="token punctuation">(</span> <span class="token variable">$y</span> <span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token variable">$y</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> Feiertage Beta Sat, 05 Nov 16 13:16:37 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679201?srt=yes#m1679201 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679201?srt=yes#m1679201 <blockquote> <p>Vermutlich bin ich mit meinem Hinweis auf die Ostkirchen auch über das Ziel hinaus geschossen, weil du ja selbst sagtest, dass du dich auf den DACH-Bereich konzentriert hast.</p> </blockquote> <p>Ja. Natürlich. Ich wohne und lebe ja auch hier. Und ich befürchte ernsthaft, dass eine weltweite Berechnung einfach zu viele Ressorcen frisst - und damit meine ich ausdrücklich sowohl maschinelle als auch persönliche Ressourcen.</p> Feiertage Beta Sat, 05 Nov 16 13:37:12 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679204?srt=yes#m1679204 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679204?srt=yes#m1679204 <blockquote> <p>So schwer ist die Osterformel nicht,</p> </blockquote> <p>ich habe jetzt statt <code>easter_date()</code> auf die PHP-eigene Funktion <code>easter_days()</code> gesetzt. <code>easter_date()</code> ist dann einfach und elegant mit dem Einzeiler:</p> <pre><code class="block language-php"><span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">easterDate</span><span class="token punctuation">(</span><span class="token variable">$y</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token punctuation">(</span> <span class="token function">mktime</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">21</span> <span class="token operator">+</span> <span class="token function">easter_days</span><span class="token punctuation">(</span> <span class="token variable">$y</span> <span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token variable">$y</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>zu ersetzen.</p> <p>easter_days() wiederum erzeuge ich nach der Abfrage, ob diese existiert, also auf hhvm. Da habe ich was gefunden...</p> <p><a href="https://code.fastix.org/showFile.php?file=Projekte/PHP%3AFeiertage/feiertage.php" rel="nofollow noopener noreferrer">Das Problem ist damit elegant gelöst</a> und <a href="http://php.net/manual/de/function.easter-date.php" rel="noopener noreferrer">auch die 1970-2037-Grenze von easter_date</a> ist umgangen.</p> <p>Experimente mit einem großen jahr-Timestamp-array verliefen nicht befriedigend. (Laufzeit, Speicher)</p> Feiertage Beta Sat, 05 Nov 16 13:12:24 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679200?srt=yes#m1679200 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679200?srt=yes#m1679200 <p>https://www.google.de/search?q=site%3Ashop-website.de</p> <ul> <li>von dort zu einem der webshops,</li> <li>weiter zu einem Produkt,</li> <li>dort dann auf "Preis für bedruckte Ware berechnen" klicken.</li> <li>Im Quelltext schauen, was da mit JS stattfindet.</li> </ul> <p>Ist aber nicht sehr modern. Grund: Hab ich so anno 2003 gebaut.</p> Feiertage Beta Sat, 05 Nov 16 13:28:04 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679203?srt=yes#m1679203 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679203?srt=yes#m1679203 <blockquote> <ul> <li>"Web 2.0"-fähig machen würdest</li> </ul> </blockquote> <p>Die anfrage per get zu wollen und die Antwort in json umzufummeln und auszusenden ist die kleinste aller Schwierigkeiten...</p> Feiertage Beta Sat, 05 Nov 16 17:32:25 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679218?srt=yes#m1679218 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679218?srt=yes#m1679218 <blockquote> <p>Experimente mit einem großen jahr-Timestamp-array verliefen nicht befriedigend. (Laufzeit, Speicher)</p> </blockquote> <p>Timestamps sind der Performancekiller für Datumsberechnungen ;)</p> <p>Rechne mit Julianischen Tagen, ich hab vor Jahren mal eine PHP-Lib entwickelt, Anwendungsbeispiel:</p> <pre><code class="block language-php"><span class="token keyword">try</span><span class="token punctuation">{</span> <span class="token variable">$date</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date_Kirche</span><span class="token punctuation">(</span><span class="token keyword">array</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'date'</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token number">30</span><span class="token punctuation">,</span><span class="token number">11</span><span class="token punctuation">,</span><span class="token number">2017</span> <span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$kirchenjahr</span> <span class="token operator">=</span> <span class="token variable">$date</span><span class="token operator">-></span><span class="token function">kirchenjahr</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">ksort</span><span class="token punctuation">(</span><span class="token variable">$kirchenjahr</span><span class="token punctuation">,</span> <span class="token constant">SORT_NUMERIC</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span><span class="token punctuation">(</span><span class="token variable">$kirchenjahr</span> <span class="token keyword">as</span> <span class="token variable">$jd</span> <span class="token operator">=></span> <span class="token variable">$name</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$d</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token keyword">array</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'julianday'</span> <span class="token operator">=></span> <span class="token variable">$jd</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"<span class="token interpolation"><span class="token variable">$d</span></span> <span class="token interpolation"><span class="token variable">$name</span></span>\n"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">catch</span><span class="token punctuation">(</span><span class="token class-name">Exception</span> <span class="token variable">$e</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">print</span> <span class="token variable">$e</span><span class="token operator">-></span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">// Ausgabe:</span> <span class="token number">01.01</span><span class="token number">.2017</span> So <span class="token number">52</span><span class="token operator">/</span><span class="token number">2016</span> Neujahr <span class="token number">06.01</span><span class="token number">.2017</span> Fr <span class="token number">01</span><span class="token operator">/</span><span class="token number">2017</span> Drei <span class="token constant">K</span>önigstag <span class="token number">23.02</span><span class="token number">.2017</span> <span class="token keyword">Do</span> <span class="token number">08</span><span class="token operator">/</span><span class="token number">2017</span> Weiberfastnacht <span class="token number">27.02</span><span class="token number">.2017</span> Mo <span class="token number">09</span><span class="token operator">/</span><span class="token number">2017</span> Rosenmontag <span class="token number">14.04</span><span class="token number">.2017</span> Fr <span class="token number">15</span><span class="token operator">/</span><span class="token number">2017</span> Karfreitag <span class="token number">16.04</span><span class="token number">.2017</span> So <span class="token number">15</span><span class="token operator">/</span><span class="token number">2017</span> Ostersonntag <span class="token number">17.04</span><span class="token number">.2017</span> Mo <span class="token number">16</span><span class="token operator">/</span><span class="token number">2017</span> Ostermontag <span class="token number">25.05</span><span class="token number">.2017</span> <span class="token keyword">Do</span> <span class="token number">21</span><span class="token operator">/</span><span class="token number">2017</span> Christi Himmelfahrt <span class="token number">04.06</span><span class="token number">.2017</span> So <span class="token number">22</span><span class="token operator">/</span><span class="token number">2017</span> Pfingstsonntag <span class="token number">05.06</span><span class="token number">.2017</span> Mo <span class="token number">23</span><span class="token operator">/</span><span class="token number">2017</span> Pfingstmontag <span class="token number">15.06</span><span class="token number">.2017</span> <span class="token keyword">Do</span> <span class="token number">24</span><span class="token operator">/</span><span class="token number">2017</span> Fronleichnam <span class="token number">15.08</span><span class="token number">.2017</span> Di <span class="token number">33</span><span class="token operator">/</span><span class="token number">2017</span> Maria Himmelfahrt <span class="token number">22.11</span><span class="token number">.2017</span> Mi <span class="token number">47</span><span class="token operator">/</span><span class="token number">2017</span> Buß<span class="token operator">-</span> und Bettag <span class="token number">26.11</span><span class="token number">.2017</span> So <span class="token number">47</span><span class="token operator">/</span><span class="token number">2017</span> Totensonntag <span class="token number">03.12</span><span class="token number">.2017</span> So <span class="token number">48</span><span class="token operator">/</span><span class="token number">2017</span> Erster Advent <span class="token number">10.12</span><span class="token number">.2017</span> So <span class="token number">49</span><span class="token operator">/</span><span class="token number">2017</span> Zweiter Advent <span class="token number">17.12</span><span class="token number">.2017</span> So <span class="token number">50</span><span class="token operator">/</span><span class="token number">2017</span> Dritter Advent <span class="token number">24.12</span><span class="token number">.2017</span> So <span class="token number">51</span><span class="token operator">/</span><span class="token number">2017</span> Vierter Advent <span class="token number">25.12</span><span class="token number">.2017</span> Mo <span class="token number">52</span><span class="token operator">/</span><span class="token number">2017</span> Erster Weihnachtstag <span class="token number">26.12</span><span class="token number">.2017</span> Di <span class="token number">52</span><span class="token operator">/</span><span class="token number">2017</span> Zweiter Weihnachtstag </code></pre> <p>Willste?</p> Feiertage Beta Sat, 05 Nov 16 18:16:15 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679221?srt=yes#m1679221 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679221?srt=yes#m1679221 <blockquote> <p>Timestamps sind der Performancekiller für Datumsberechnungen ;)</p> </blockquote> <p>Ja. Aber SOOOOOO oft finden die gar nicht statt.</p> <ul> <li>1 x für Ostern. (1)</li> <li>1 x pro abhängigen Feiertag (Gesamt: 12)</li> <li>1 x für 4.Advent (1)</li> <li>1 x pro abhängigen Feiertag (Gesamt: 7)</li> <li>1 x für jeden abgefragten Tag (2016: 366)</li> </ul> <p>Macht: 381</p> <p>Ich glaube nicht, dass ich spürbar an Performance gewinne.</p> <p>Allerdings brauche ich einen Ersatz für PHP auf 32-Bit-Arms. <strong>Denn da versagt <code>mktime()</code>: es liefert für alles außerhalb von 1970 .. 2037 nur <code>false</code>.</strong></p> <p>Das ist nicht dokumentiert. Bei mktime() steht:</p> <blockquote> <p><strong>Achtung:</strong> Vor PHP 5.1.0 wurden negative Timestamps von keiner bekannten Windowsversion oder anderen Betriebssystemen unterstützt. Daher war der Bereich gültiger Jahresangaben auf Werte zwischen 1970 und 2038 beschränkt.</p> </blockquote> <p>"Vor PHP 5.1.0" ... Ich hab <code>PHP 7.0.12-1+deb.sury.org~trusty+1 (cli) ( NTS )</code>.</p> <p>Was hast Du also?</p> Komplexe Arrays/Hashs wegschreiben und Lesen - heute: var_dump() Sun, 06 Nov 16 01:50:58 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679239?srt=yes#m1679239 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679239?srt=yes#m1679239 <p>Ich habe noch <a href="http://php.net/manual/de/function.var-dump.php" rel="noopener noreferrer">var_dump()</a> im Angebot:</p> <p>Schreiben:</p> <pre><code class="block language-php">file_put_content($fileName,'<?php $var='.preg_replace('/\s+/',' ',var_dump($var,true)).';'); </code></pre> <p>Lesen:</p> <pre><code class="block language-php"><span class="token keyword">include</span> <span class="token punctuation">(</span><span class="token variable">$fileName</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">#set the var $var</span> </code></pre> <p>Der kleine "Packer" <code>(preg_replace('/\s+/',' ', ...)</code> macht natürlich nur Sinn, wenn in der Variablen(Hash, Array) keine (mehrfachen) Spaces (Blanks, Tabs, NewLines, cReturns) auftauchen.</p> <p>Sonst einfach:</p> <pre><code class="block language-php">file_put_content($fileName,'<?php $var='.var_dump($var,true).';'); </code></pre> Feiertage Beta Sun, 06 Nov 16 07:44:57 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679248?srt=yes#m1679248 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679248?srt=yes#m1679248 <blockquote> <blockquote> <blockquote> <p>Ich bin mir noch nicht ganz sicher ob ich INI nicht die irgendwie nach json "compiliere"</p> </blockquote> <p>Compilieren ja, aber JSON ist auch nicht performanter im Serialisieren. Wenn Du was wirklich Schnelles haben willst, serialisiere byteorientiert auf Low-Level. Mit untenstehendem Algorithmus (den ich auch irgendwo in PHP habe) liest mein FW den gesamten Content (derzeit ca. 300 Einzelseiten) aus einer Bytesequenz mit ca. 1 MB, das geht ratz fatz.</p> </blockquote> <p>„ratz fatz“ ist gar nichts! JSON-Parser erreichen mühelos Geschwindigkeiten von „volle pulle“!</p> </blockquote> <p>... sagte der Kollege der JSON so toll fand und hatte danach ein schwieriges Gespräch wegen einer Kundenbeschwerde ;)</p> <p>Ich hab dem Kollegen dann den Tip gegeben, er solle wenigstens JSON::XS verwenden, was zwar seine gigantischen JSON-Dateien auch nicht kleiner macht aber merklich schneller parst als das Legacy-Module.</p> <p>Aber in Fakt gehts ja auch gar nicht nur um Performance sondern auch um benutzerfreundliche Konfigurationsdateien und Backends. Für <a href="http://rolfrost.de/editbin.html" rel="nofollow noopener noreferrer">Konfigs wie diese hier</a> möchte ich in Gänze weder eine ini, noch jsondatei editieren -- diese Konfig wird aus mehreren Datenquellen zusammengelinkt, maschinell erstellt und erst dann deployed.</p> <p>Schönen Sonntag.</p> Feiertage Beta Tue, 08 Nov 16 08:27:00 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679454?srt=yes#m1679454 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679454?srt=yes#m1679454 <blockquote> <blockquote> <blockquote> <p>Ich bin mir noch nicht ganz sicher ob ich INI nicht die irgendwie nach json "compiliere"</p> </blockquote> <p>Compilieren ja, aber JSON ist auch nicht performanter im Serialisieren. Wenn Du was wirklich Schnelles haben willst, serialisiere byteorientiert auf Low-Level. Mit untenstehendem Algorithmus (den ich auch irgendwo in PHP habe) liest mein FW den gesamten Content (derzeit ca. 300 Einzelseiten) aus einer Bytesequenz mit ca. 1 MB, das geht ratz fatz.</p> </blockquote> <p>„ratz fatz“ ist gar nichts! JSON-Parser erreichen mühelos Geschwindigkeiten von „volle pulle“!</p> </blockquote> <p>PS: Guck Dir bitte noch einmal meinen Algorithmus an. Im Gegensatz zu JSON oder anderen zeichenorientierten Algorithmen arbeitet mein Algorithmus mit Längenangaben (Offset) auf Byte-Ebene. Das heißt, dass ein anderer, zeichenorientierter Algorithmus gar nicht performanter sein kann, was Benchmarks auch bestätigen.</p> Komplexe Arrays/Hashs wegschreiben und Lesen - heute: var_export() Sun, 06 Nov 16 02:32:49 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679240?srt=yes#m1679240 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679240?srt=yes#m1679240 <p>Ups ... verwechselt. var_dump() ist nicht dafür gemacht.</p> <p>Ich habe noch <a href="http://php.net/manual/de/function.var-dump.php" rel="noopener noreferrer">var_export()</a> im Angebot:</p> <p>Schreiben:</p> <pre><code class="block language-php">file_put_contents($fileName,'<?php $var='.preg_replace('/\s+/',' ',var_export($var,true)).';'); </code></pre> <p>Lesen:</p> <pre><code class="block language-php"><span class="token keyword">include</span> <span class="token punctuation">(</span><span class="token variable">$fileName</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">#set the var $var</span> </code></pre> <p>Der kleine "Packer" <code>(preg_replace('/\s+/',' ', ...)</code> macht natürlich nur Sinn, wenn in der Variablen(Hash, Array) keine (mehrfachen) Spaces (Blanks, Tabs, NewLines, cReturns) auftauchen.</p> <p>Sonst einfach:</p> <pre><code class="block language-php">file_put_contents($fileName,'<?php $var='.var_export( $var , true ) . ';'); </code></pre> <p>Test:</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Content-Type:text/plain; charset=utf-8'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$var</span><span class="token operator">=</span><span class="token keyword">array</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Foo'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'Bar'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$fileName</span><span class="token operator">=</span><span class="token string single-quoted-string">'filed_var.php'</span><span class="token punctuation">;</span> <span class="token function">file_put_contents</span><span class="token punctuation">(</span><span class="token variable">$fileName</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'<?php $varRead='</span><span class="token operator">.</span><span class="token function">preg_replace</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'/\s+/'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">' '</span><span class="token punctuation">,</span><span class="token function">var_export</span><span class="token punctuation">(</span><span class="token variable">$var</span><span class="token punctuation">,</span><span class="token constant boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">.</span><span class="token string single-quoted-string">';'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">unset</span><span class="token punctuation">(</span><span class="token variable">$var</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">include</span> <span class="token punctuation">(</span><span class="token variable">$fileName</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">#set the var $varRead;</span> <span class="token function">print_r</span><span class="token punctuation">(</span><span class="token variable">$varRead</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </span></code></pre> <p>Ausgaben:</p> <pre><code class="block">php test.php Array ( [0] => Foo [1] => Bar ) </code></pre> <p>geschriebene Datei:</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$varRead</span><span class="token operator">=</span><span class="token keyword">array</span> <span class="token punctuation">(</span> <span class="token number">0</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'Foo'</span><span class="token punctuation">,</span> <span class="token number">1</span> <span class="token operator">=></span> <span class="token string single-quoted-string">'Bar'</span><span class="token punctuation">,</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> </span></code></pre> Komplexe Arrays/Hashs wegschreiben und Lesen - heute: var_export() Sun, 06 Nov 16 12:01:44 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679277?srt=yes#m1679277 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679277?srt=yes#m1679277 <blockquote> <p>Ups ... verwechselt. var_dump() ist nicht dafür gemacht.</p> </blockquote> <p>Da du Kalendardaten berechnest bietet sich doch ein Kalenderformat wie ical an. Dann kann ein(e) Nutzer(in) direkt die Daten in seine/ihre individuelle Kalendar-App importieren. Die mir bekannten Apps haben auch alle eine Funktion, um ical-Daten direkt per URL zu beziehen.</p> Feiertage Beta Sun, 06 Nov 16 11:55:14 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679276?srt=yes#m1679276 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679276?srt=yes#m1679276 <p>Meine Kritik zielte darauf ab, dass du deine Aussage nicht untermauert hast. Wer über Performance reden will, muss seine Argumentation mit Messungen und/oder Komplexitäts-Analysen begründen. Anders funktioniert das nicht. Das gilt auch für deine Aussage „Timestamps sind der Performancekiller für Datumsberechnungen“. So salopp dahingestellt ist das nicht ernst zu nehmen.</p> Schneller Test Sun, 06 Nov 16 12:33:43 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679281?srt=yes#m1679281 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679281?srt=yes#m1679281 <blockquote> <blockquote> <blockquote> <blockquote> <p>Ich bin mir noch nicht ganz sicher ob ich INI nicht die irgendwie nach json "compiliere"</p> </blockquote> </blockquote> </blockquote> </blockquote> <p>Mir geht es vor allem darum, dass die manuell geänderte INI nur einmal geprüft wird. Das json oder was auch immer ich erzeuge wird dann nicht nochmals geprüft, gefiltert oder sonstwas. Das dürfte auf belasteten oder schwachen Servern dann schon Zeit sparen...</p> <blockquote> <p>Für Konfigs wie diese hier möchte ich in Gänze</p> </blockquote> <p>Der Performance-Test <strong>mit genau Deinen Daten</strong> auf dem Banana:</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"Content-Type:text/plain; charset=utf8"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$data</span><span class="token operator">=</span><span class="token function">file</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'data.csv'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$ar</span><span class="token operator">=</span><span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$data</span> <span class="token keyword">as</span> <span class="token variable">$row</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$ar</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token operator">=</span><span class="token function">explode</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'|'</span><span class="token punctuation">,</span> <span class="token function">trim</span><span class="token punctuation">(</span><span class="token variable">$row</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token function">file_put_contents</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'data.json'</span><span class="token punctuation">,</span> <span class="token function">json_encode</span><span class="token punctuation">(</span><span class="token variable">$ar</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">file_put_contents</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'data.php'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'<?php $ar='</span><span class="token operator">.</span><span class="token function">preg_replace</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'/\s+/'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">' '</span><span class="token punctuation">,</span><span class="token function">var_export</span><span class="token punctuation">(</span><span class="token variable">$ar</span><span class="token punctuation">,</span><span class="token constant boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">.</span><span class="token string single-quoted-string">';'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> ============================= Lese 1000 mal die data.csv: ============================= <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$ar</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$s</span> <span class="token operator">=</span> <span class="token function">microtime</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$ar</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token variable">$i</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator"><</span> <span class="token number">1000</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$data</span> <span class="token operator">=</span> <span class="token function">file</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'data.csv'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$ar</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$data</span> <span class="token keyword">as</span> <span class="token variable">$row</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$ar</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">'|'</span><span class="token punctuation">,</span> <span class="token function">trim</span><span class="token punctuation">(</span><span class="token variable">$row</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token variable">$e</span> <span class="token operator">=</span> <span class="token function">microtime</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token string single-quoted-string">'Array hat '</span> <span class="token operator">.</span><span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$ar</span><span class="token punctuation">)</span><span class="token operator">.</span> <span class="token string double-quoted-string">" Items.\n"</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token punctuation">(</span><span class="token variable">$e</span><span class="token operator">-</span><span class="token variable">$s</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">' Sekunden (avg. '</span> <span class="token operator">.</span> <span class="token punctuation">(</span><span class="token variable">$e</span> <span class="token operator">-</span><span class="token variable">$s</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">' ms pro Lesevorgang)'</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"\n\n"</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> ============================= Lese 1000 mal die data.json: ============================= <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$ar</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$s</span> <span class="token operator">=</span> <span class="token function">microtime</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$ar</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">for</span> <span class="token punctuation">(</span> <span class="token variable">$i</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator"><</span><span class="token number">1000</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$ar</span> <span class="token operator">=</span> <span class="token function">json_decode</span><span class="token punctuation">(</span><span class="token function">file_get_contents</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'data.json'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token variable">$e</span> <span class="token operator">=</span> <span class="token function">microtime</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token string single-quoted-string">'Array hat '</span> <span class="token operator">.</span><span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$ar</span><span class="token punctuation">)</span><span class="token operator">.</span> <span class="token string double-quoted-string">" Items.\n"</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token punctuation">(</span><span class="token variable">$e</span><span class="token operator">-</span><span class="token variable">$s</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">' Sekunden (avg. '</span> <span class="token operator">.</span> <span class="token punctuation">(</span><span class="token variable">$e</span> <span class="token operator">-</span><span class="token variable">$s</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">' ms pro Lesevorgang)'</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"\n\n"</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> ============================= Lese 1000 mal die data.php: ============================= <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$ar</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$s</span> <span class="token operator">=</span> <span class="token function">microtime</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$ar</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">for</span> <span class="token punctuation">(</span> <span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator"><</span> <span class="token number">1000</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">include</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'data.php'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token variable">$e</span> <span class="token operator">=</span> <span class="token function">microtime</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token string single-quoted-string">'Array hat '</span> <span class="token operator">.</span><span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$ar</span><span class="token punctuation">)</span><span class="token operator">.</span> <span class="token string double-quoted-string">" Items.\n"</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token punctuation">(</span><span class="token variable">$e</span><span class="token operator">-</span><span class="token variable">$s</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">' Sekunden (avg. '</span> <span class="token operator">.</span> <span class="token punctuation">(</span><span class="token variable">$e</span> <span class="token operator">-</span><span class="token variable">$s</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">' ms pro Lesevorgang)'</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"\n\n"</span><span class="token punctuation">;</span> </span></code></pre> <p>Abrufbar unter: <a href="https://home.fastix.org/Tests/performance_data_read/" rel="nofollow noopener noreferrer">https://home.fastix.org/Tests/performance_data_read/</a></p> <p>Banana PI M3 mit PHP 7.0.12-1+deb.sury.org~trusty+1 (cli) ( NTS ):</p> <pre><code class="block">============================= Lese 1000 mal die data.csv: ============================= Array hat 307 Items. 1.9917180538177 Sekunden (avg. 1.9917180538177 ms pro Lesevorgang) ============================= Lese 1000 mal die data.json: ============================= Array hat 307 Items. 1.2487099170685 Sekunden (avg. 1.2487099170685 ms pro Lesevorgang) ============================= Lese 1000 mal die data.php: ============================= Array hat 307 Items. 0.0023698806762695 Sekunden (avg. 0.0023698806762695 ms pro Lesevorgang) </code></pre> <ol> <li> <p>Auffällig ist, dass JSON sehr viel schneller geworden ist als CSV.</p> </li> <li> <p>Offensichtlich nimmt PHP7 hier irgendeinen internen Cache oder der Interpreter imgeht es anders, die Datei 1000 x zu inkludieren. Das macht auch Sinn, z.b. im Hinblick auf Microtemplates. Also noch ein Test mit PHP vor Version 7:</p> </li> </ol> <p>Auf dem "richtigen" Rechner mit PHP 5.5.9-1ubuntu4.20 (cli) (built: Oct 3 2016 13:00:37) ergab sich wie folgt:</p> <pre><code class="block">php test.php ============================= Lese 1000 mal die data.csv: ============================= Array hat 307 Items. 0.70170998573303 Sekunden (avg. 0.70170998573303 ms pro Lesevorgang) ============================= Lese 1000 mal die data.json: ============================= Array hat 307 Items. 1.1871249675751 Sekunden (avg. 1.1871249675751 ms pro Lesevorgang) ============================= Lese 1000 mal die data.php: ============================= Array hat 307 Items. 1.7161350250244 Sekunden (avg. 1.7161350250244 ms pro Lesevorgang) </code></pre> <p>Hier ist der extrem primitive CSV Reader zwar schneller, kann aber nicht komplexes einlesen. In dem Fall ist die Zeit für JSON vertretbar.</p> Komplexe Arrays/Hashs wegschreiben und Lesen - heute: var_export() Sun, 06 Nov 16 12:47:00 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679282?srt=yes#m1679282 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679282?srt=yes#m1679282 <blockquote> <p>Da du Kalendardaten berechnest bietet sich doch ein Kalenderformat wie ical an. Dann kann ein(e) Nutzer(in) direkt die Daten in seine/ihre individuelle Kalendar-App importieren. Die mir bekannten Apps haben auch alle eine Funktion, um ical-Daten direkt per URL zu beziehen.</p> </blockquote> <p>Naja. Ical bietet zunächst nicht die Möglichkeit, komplexere Berechnungen der Feiertage durchzuführen.</p> <p>Aber für die Nutzer-Kalenderdaten wäre es natürlich erste Wahl. Schon mal weil man dann auch Einladungen, Bahnfahrten, Hotelaufenthalte etc. einfach importieren kann. Eventuell sogar per Mail, welches ein "Agent" abholt.</p> Feiertage (BETA) Sun, 06 Nov 16 21:09:03 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679325?srt=yes#m1679325 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679325?srt=yes#m1679325 <blockquote> <p>Da du Kalendardaten berechnest bietet sich doch ein Kalenderformat wie ical an. Dann kann ein(e) Nutzer(in) direkt die Daten in seine/ihre individuelle Kalendar-App importieren.</p> </blockquote> <p>Jetzt kam ich drauf.</p> <p>Du meinst einen Export der Feiertage.</p> <p>Ja. Klar. Die Feiertagsberechnung ist ja Teil einer Bibliothek die in andere Werke integriert werden soll. Da es also zwingend um "irgendwas mit Kalender" geht steht der Export von Daten für den Import in gängige Apps oder Programme natürlich auf dem Plan. ical ist also ohnehin ein Format über welches ich nachlesen muss. Ich werde den Teil dann auch veröffentlichen.</p> Schneller Test (Fazit) Sun, 06 Nov 16 13:40:55 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679286?srt=yes#m1679286 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679286?srt=yes#m1679286 <p>Ich habe <a href="https://home.fastix.org/Tests/performance_data_read/" rel="nofollow noopener noreferrer">den Test</a> noch um <code>serialize()</code> ergänzt.</p> <p>Das Pärchen aus <code>var_export()</code> und <code>include()</code> ist unter PHP 7 mit 0,3 Millisekunden beim Import der sonnenklare Gewinner. Unter PHP 5.9 ist das Ergebnis durchwachsener, aber die Abstände sind nicht wirklich groß und das Lesen der selben Daten (als CSV 21KB, bis 38KB serialisiert) dauert (aus dem Filesystem-Cache!) im Bereich von 0,5 bis 1,3 Millisekunden.</p> <p>Bei komplexeren Daten (csv wird dann <em>"schwierig bis unbenutzbar, auf jeden Fall langsamer"</em>) kann sich das noch verschieben - ich vermute aber, dass dann das Pärchen aus <code>var_export()</code> und <code>include()</code> noch mehr gewinnt.</p> <p>Unter dem Gesichtspunkt der Möglichkeit, auch mit anderen Sprachen (Javascript im Browser!) auf die Daten zuzugreifen könnte allerdings JSON die beste Alternative sein, es ist nur geringfügig langsamer als <code>serialice()</code> / <code>unserialice()</code>.</p> Feiertage Beta Mon, 07 Nov 16 21:54:13 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679438?srt=yes#m1679438 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679438?srt=yes#m1679438 <blockquote> <p>Ein Bekannter hat kürzlich auch so was gemacht. Vielleicht interessant: <a href="https://github.com/hausl/HolidayCalendar" rel="noopener noreferrer">https://github.com/hausl/HolidayCalendar</a></p> </blockquote> <p>Hm.</p> <p>PHP Parse error: syntax error, unexpected '.', expecting ',' or ';' in /tmp/HolidayCalendar-master/HolidayCalendar.php on line 28</p> <p>Na gut. Ist ausdrücklich als ALPHA gekennzeichnet. Ich hab den Fehler korrigiert (s.u.) und es auch sonst durchgesehen. Sieht ganz nett aus und verfolgt doch tatsächlich einen, dem meinen sehr ähnlichen Ansatz.</p> <p>Meiner läuft inzwischen auch auf hhvm :-)</p> <p>Kannst Deinen Kumpel ja mal briefen:</p> <p>Zeile 28 ändern in:</p> <pre><code class="block language-php"><span class="token variable">$filePath</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'config/'</span><span class="token punctuation">,</span> </code></pre> <p>Unterhalb von Zeile 34 (innerhalb von __construct():</p> <pre><code class="block language-php"><span class="token variable">$this</span> <span class="token operator">-></span> <span class="token variable">$filePath</span> <span class="token operator">=</span> <span class="token constant">__DIR__</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/'</span> <span class="token operator">.</span> <span class="token variable">$this</span> <span class="token operator">-></span> <span class="token variable">$filePath</span><span class="token punctuation">;</span> </code></pre> <p>Ich mach das hier weil er keine Adresse angegeben hat.</p> Allfällige Korrektur Mon, 07 Nov 16 22:15:58 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679439?srt=yes#m1679439 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679439?srt=yes#m1679439 <pre><code class="block language-php"><span class="token variable">$this</span> <span class="token operator">-></span> <span class="token property">filePath</span> <span class="token operator">=</span> <span class="token constant">__DIR__</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/'</span> <span class="token operator">.</span> <span class="token variable">$this</span> <span class="token operator">-></span> <span class="token property">filePath</span><span class="token punctuation">;</span> </code></pre> <p>natürlich ...</p> <p>Übrigens ist mein Ansatz deutlich schneller. Braucht nur 1/8 der Zeit um alle Tage eines Jahres darauf zu prüfen ob es Feiertage sind. Und meiner läuft mit hhvm.</p> Feiertage Beta Mon, 07 Nov 16 22:30:00 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679441?srt=yes#m1679441 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679441?srt=yes#m1679441 <blockquote> <p>Kannst Deinen Kumpel ja mal briefen</p> </blockquote> <p>Das ist ein <a href="http://php.net/manual/en/migration56.new-features.php" rel="noopener noreferrer">PHP 5.6-Feature</a> (constant expressions). Ich kann es in der Form aber lokal auch nicht ausführen. Bin noch auf 5.5.</p> <p>Ich sage es ihm aber mal, weil ich schon finde, das man einige frühere Versionen ruhig auch noch unterstützen darf, wenn man sich dafür kein Bein ausreißen muss. Danke für den Hinweis.</p> Feiertage Beta Mon, 07 Nov 16 23:17:28 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679442?srt=yes#m1679442 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679442?srt=yes#m1679442 <p>Hallo !Tagwächter, hallo mermshaus,</p> <p>danke für die Info, schaue ich mir an.. 5.6 sollte schon noch drinnen sein. (Mir persönlich ist/war PHP 7 wichtiger als HHVM ;) )</p> <p>Adresse von mir deshalb keine, da ich es gerne hätte das Anmerkungen, Kritik etc.. als Github-Issues erfasst werden.. zentral an einen Ort und von jedem der will.</p> <p>Zum Thema.. Ich habe deine Lib jetzt noch nicht genau angesehen, habe damals das ini-Format nicht genommen, weil es die Detailtiefe wie PHP-Arrays nicht sauber darstellen kannt. Da ging es mir dann zB um die Mehrsprachigkeit von Feiertagen - zumindest die Möglichkeit zu schaffen die deutschen Feiertage auch in englisch konfigurieren zu können. Und nochwas war.. weiß ich aber gerade nicht mehr, der Parsevorgang fällt weg, dafür ist es PHP-unkundigen ev. schwerer zu warten... ja seis drum.</p> <p>Generell die Detailtiefe dem User zu überlassen und nur den Rahmen und die Möglichkeiten zu schaffen, war mein oberstes Ziel ... Performance lag nicht im Haupt-Fokus, aktuelle, saubere Programmierung eher. Performancemäßig macht da auch PHP 7 sehr schon von der Stange weg sehr viel.</p> <p>Ansonsten .. das Ding ist eher spontan auch einem Forentrhead entstanden.. da ich reiner Hobby-PHP-Mensch bin... wer es brauchen kann fein, wer nicht.. ok ;)</p> <p>Als dann.. eine schönen Abend! LG hausl</p> Feiertage Beta Tue, 08 Nov 16 07:38:15 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679448?srt=yes#m1679448 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679448?srt=yes#m1679448 <p>Hallo,</p> <p>ich habe es jetzt nochmals kurz (zu mehr leider keine Zeit) überflogen. Nachfolgendes noch:</p> <p>2017 ist der hl. Abend gleich mit dem 4. Advent. Das wird bei dir verschluckt.</p> <p>Ausgabe feiertage-test-1.php mit Datum 2017:</p> <pre><code class="block language-php">Sun <span class="token punctuation">:</span> <span class="token number">03.12</span><span class="token number">.2017</span> <span class="token operator">::</span> <span class="token number">1.</span> Advent <span class="token constant">KF</span> <span class="token punctuation">:</span> kein Feiertag Sun <span class="token punctuation">:</span> <span class="token number">10.12</span><span class="token number">.2017</span> <span class="token operator">::</span> <span class="token number">2.</span> Advent <span class="token constant">KF</span> <span class="token punctuation">:</span> kein Feiertag Sun <span class="token punctuation">:</span> <span class="token number">17.12</span><span class="token number">.2017</span> <span class="token operator">::</span> <span class="token number">3.</span> Advent <span class="token constant">KF</span> <span class="token punctuation">:</span> kein Feiertag Sun <span class="token punctuation">:</span> <span class="token number">24.12</span><span class="token number">.2017</span> <span class="token operator">::</span> <span class="token constant">Heilige</span> Nacht <span class="token constant">KF</span> <span class="token punctuation">:</span> kein Feiertag <span class="token constant">TVBW</span> <span class="token punctuation">:</span> Tanzverbot in Baden<span class="token operator">-</span><span class="token constant">W</span>ürttemberg </code></pre> <p>Es sollten immer mehr Feiertage/Sondertage an einem Datum möglich sein. Könnte ja zB auch leicht passieren, das jemand im zB Vereinskalender div. spezielle "Datums" darüber abbilden will, oder Namenstage etc.. dann kann das schnell mal kollidieren (meine Meinung).</p> <p>Muttertag, Advent, etc.. sind übrigens keine gesetzlichen Feiertage, das muss man sich in der Config als User selber richten wie "weit" man geht. Ev. will ja ein Tierfreund auch den "Tag des Hundes" feiern, dann steht ihm das natürlich frei.</p> <p>Um das Ganze sauber trennen zu können, kann man bei mir mehr Configs - beliebig viele - laden. Bei meinen Beispielen habe ich für at und de die gesetzlichen Feiertage in jeweiligen Dateien und noch eine als Beispiel mit "besonderen Tagen" - wie Advent, Muttertag, etc.. also die nicht gesetzlichen. Aber wie gesagt, das muss eh jeder selbst entscheiden - wie weit er die Feiertage haben will. Ich denke zB auf einer jüdischen etc.. Seite sind wieder ganz andere "Gedenktage" interessant.. und so weiter.</p> <p>Ich hab auch schon überlegt die Config auf eine SQLite Datei auszulagern.. Dann hätte man eine einzige Datei und PHP (da komm ich ja her) unterstützt diese von der Stange. Für das Datenvolumen ist das bei weitem ausreichend.. Das hab ich aber noch nicht fertig gedacht.. Und eine rohe Textdatei ist halt schon auch einfach und bequem zu formatieren.. Da reicht ein Editor ;)</p> <p>Achja.. die Sprache wollte ich noch erwähnen... Ich wollte es ermöglichen zB Feiertage von Spanien (per Definition) auf einer deutschen Seite mit deutschen Namen ausgeben zu können. Daher die grundsätzliche Möglichkeit der Mehrsprachigkeit.</p> <p>Und - was ich noch erwähnen möchte - aus deinem Interface kann man noch einiges herausholen. Zum Beispiel deine Testdatei 1 <a href="https://code.fastix.org/showFile.php?file=Projekte/PHP%3AFeiertage/test-feiertage-1.php" rel="nofollow noopener noreferrer">https://code.fastix.org/showFile.php?file=Projekte/PHP%3AFeiertage/test-feiertage-1.php</a> sähe bei mir so in etwa aus:</p> <pre><code class="block language-php"><span class="token keyword">require_once</span> <span class="token constant">__DIR__</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/HolidayCalendar.php'</span><span class="token punctuation">;</span> <span class="token variable">$holiday</span><span class="token operator">-></span><span class="token function">setDateTimezone</span><span class="token punctuation">(</span> <span class="token keyword">new</span> <span class="token class-name">DateTimeZone</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Europe/Berlin'</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// optional -> Doku</span> <span class="token variable">$holiday</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">HolidayCalendar</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'de.php'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$holiday</span><span class="token operator">-></span><span class="token function">setFilter</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'AU'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$aHolidays</span> <span class="token operator">=</span> <span class="token variable">$holiday</span><span class="token operator">-></span><span class="token function">createHolidaysList</span><span class="token punctuation">(</span><span class="token number">2017</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$aHolidays</span> <span class="token keyword">as</span> <span class="token variable">$aHoliday</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'%s: %s<br>'</span><span class="token punctuation">,</span> <span class="token variable">$aHoliday</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'date'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token variable">$aHoliday</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Zu mehr hatte ich leider keine Zeit. Die Ostern-Berechnung mit der csv-Datei hast du wegen HHVM so gemacht was ich gesehen habe. Ich Nutze dafür das aus diesem Beispiel/Comment hier: <a href="http://php.net/manual/en/function.easter-date.php#refsect1-function.easter-date-notes" rel="noopener noreferrer">http://php.net/manual/en/function.easter-date.php#refsect1-function.easter-date-notes</a></p> <p>(Sollte ich etwas in dem langen Thread übersehen haben was schon erwähnt wurde SORRY, ich muss gestehen hab ihn nicht zur Gänze gelesen.)</p> <p>LG</p> Feiertage Beta Tue, 08 Nov 16 08:08:40 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679452?srt=yes#m1679452 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679452?srt=yes#m1679452 <p>Da ich oben nicht mehr editieren konnte:</p> <p>Gewisse Daten kann man auch mit relativen Ausdrücken abbilden, das fehlt bei dir noch was ich gesehen habe. Du hast Ostern und den 4. Advent als "Anker". Also sowas zB:</p> <p>Auszug aus meiner <a href="https://github.com/hausl/HolidayCalendar#datumsausdr%C3%BCcke" rel="noopener noreferrer">Doku</a>:</p> <pre><code class="block">Relative Datumsausdrücke Beginn Sommerzeit: 'last sunday of march' Muttertag: 'second sunday of may' Relative-Ketten 4. Advent: '11/26, next Sunday, +3 weeks' Die Ausdrücke werden je Beistrich einzeln nacheinander ausgeführt. Ausgangszeitpunkt ist der 01.01. des abgefragen Jahres. </code></pre> <p>PS: Falls es ja jemanden noch interessiert.. Aus diesem Thread ging das Ganze hervor, da gab es auch Diskussionen, alternative Ansätze etc, etc..</p> <p><a href="https://www.php.de/forum/webentwicklung/software-design/1470286-feiertage" rel="nofollow noopener noreferrer">https://www.php.de/forum/webentwicklung/software-design/1470286-feiertage</a></p> <p>LG</p> Feiertage Beta Tue, 08 Nov 16 09:00:57 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679456?srt=yes#m1679456 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679456?srt=yes#m1679456 <p>Hi,</p> <blockquote> <p>Muttertag, Advent, etc.. sind übrigens keine gesetzlichen Feiertage</p> </blockquote> <p>aber sie fallen per Definition auf einen Sonntag, also einen gesetzlichen Ruhetag. Ist die Unterscheidung dann noch sinnvoll?</p> <p>Es geht doch beim Begriff <em>Feiertag</em> um zweierlei:</p> <ul> <li>Ist es ein arbeitsfreier Tag? - Das trifft auf gesetzliche Feiertage zu, aber eben auch auf Pseudo-Feiertage wie den Muttertag, weil er immer auf einen Sonntag fällt. Die Frage, ob z.B. Muttertag ein <em>gesetzlicher</em> Feiertag ist, wäre unter diesem Aspekt irrelevant.</li> <li>Ist es ein Gedenktag? - Wenn jemandem ein Feiertag in seiner Eigenschaft als Gedenktag wichtig ist, wird er/sie diesen Tag auf die eine oder andere Weise besonders behandeln. Auch für diese Frage ist es unerheblich, ob es sich um einen <em>gesetzlichen</em> Feiertag handelt.</li> </ul> <blockquote> <p>Ev. will ja ein Tierfreund auch den "Tag des Hundes" feiern, dann steht ihm das natürlich frei.</p> </blockquote> <p>Zum Beispiel. ;-)</p> <blockquote> <p>Bei meinen Beispielen habe ich für at und de die gesetzlichen Feiertage in jeweiligen Dateien und noch eine als Beispiel mit "besonderen Tagen" - wie Advent, Muttertag, etc.. also die nicht gesetzlichen.</p> </blockquote> <p>Welchen Grund könnte es noch geben, zwischen gesetzlichen und nicht gesetzlichen Feiertagen zu unterscheiden?</p> <p>EDIT: Ich ziehe die Frage zurück, mir ist eben klar geworden, dass sich die Antwort schon aus den beiden oben beschriebenen Aspekten ergibt. Wenn jemand den Tag des Hundes feiern will, ist es für denjenigen schon wichtig zu wissen, dass das im Gegensatz zu, sagen wir, Christi Himmelfahrt, eben <strong>kein</strong> gesetzlicher Feiertag ist, und er sich somit für seinen Wauwau freinehmen muss.<br> /EDIT</p> <blockquote> <p>Achja.. die Sprache wollte ich noch erwähnen... Ich wollte es ermöglichen zB Feiertage von Spanien (per Definition) auf einer deutschen Seite mit deutschen Namen ausgeben zu können. Daher die grundsätzliche Möglichkeit der Mehrsprachigkeit.</p> </blockquote> <p>Interessanter Gedanke.</p> <p>So long,<br>  Martin</p> <div class="signature">-- <br> Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.<br> - (frei übersetzt nach Douglas Adams) </div> Feiertage Beta Tue, 08 Nov 16 09:24:15 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679457?srt=yes#m1679457 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679457?srt=yes#m1679457 <p>An Deinem Skript ist die Verwendung von Strings wie '11/26, next Sunday, +3 weeks' eine sehr interessante Sache. Wobei der konkrete 4. Advent einfacher zu errechnen ist - und der kommt wegen der daran hängenden Feiertage als Anker in Betracht. Ich muss mal sehen wie ich das mit den Zeitumstellungen, Muttertag & Co. mache.</p> <blockquote> <p>2017 ist der hl. Abend gleich mit dem 4. Advent. Das wird bei dir verschluckt.</p> </blockquote> <p>Teufel auch!</p> <p>Genau gestern saß hier jemand an meinem Küchentisch und fragte mich, ob denn das stimme, dass 2017 der vierte Advent und Heiligabend auf einen Tag fallen. Das hatte ich natürlich überprüft und darauf hin erst mal die Reihenfolge der Überprüfungen gedreht (Weil da nur der 4. Advent rauskam, Heilignacht aber irgendwie wichtiger ist). Und ich habe das Problem bzw. dessen Lösung auf den "ToDo- Zettel" geschrieben. Ich muss die Ausgabe wohl auf ein Array umstellen, denn:</p> <blockquote> <p>Es sollten immer mehr Feiertage/Sondertage an einem Datum möglich sein.</p> </blockquote> <p>Genau. Denn was geschieht wenn jemand Geburtstage hinzufügt?</p> <blockquote> <p>Muttertag, Advent, etc.. sind übrigens keine gesetzlichen Feiertage, das muss man sich in der Config als User selber richten wie "weit" man geht. Ev. will ja ein Tierfreund auch den "Tag des Hundes" feiern, dann steht ihm das natürlich frei.</p> </blockquote> <p>Dafür habe ich die 'Codes' ...</p> <blockquote> <p>Um das Ganze sauber trennen zu können, kann man bei mir mehr Configs - beliebig viele - laden.</p> </blockquote> <p>Ja. Die Sache mit der Konfiguration und deren Änderung zur Laufzeit ist und bleibt Thema für Überlegungen.</p> <blockquote> <p>Die Ostern-Berechnung mit der csv-Datei hast du wegen HHVM so gemacht was ich gesehen habe.</p> </blockquote> <p>Du meinst den Ordner helpers. Mit den Resten meiner Tests.</p> <p>Da sind eigentlich nur "Experimente" drin. Ich habe ja das Problem, dass auf dem 32-Bit Armel ab 2038 quasi alle Datumsfunktionen versagen und weiß inzwischen woran das liegt: PHP nimmt die Funktionen aus libc - und die versagen auf dem Ding auch. Betroffen ist sogar mktime() - das ist derart "essentiell", dass ich schon eine Menge Zeit in das Problem versenkt habe. Vor allem ist dieses Desaster in PHP nicht (wirklich) dokumentiert. Nur bei easter_date() steht es.</p> <p>Für hhvm bzw. die dort fehlende Funktion easter_days() verwende ich einen Ersatz von rabbit-aaron:</p> <pre><code class="block language-php"><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span> <span class="token function">function_exists</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">'easter_days'</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">/** * code by rabbit-aaron, https://github.com/rabbit-aaron * based on code by Simon Kershaw, <webmaster@ely.anglican.org> * License: https://github.com/rabbit-aaron/hhvm-php-easter/blob/master/LICENSE **/</span> <span class="token keyword">function</span> <span class="token function-definition function">easter_days</span><span class="token punctuation">(</span> <span class="token variable">$year</span> <span class="token operator">=</span> <span class="token constant">NULL</span><span class="token punctuation">,</span> <span class="token variable">$method</span> <span class="token operator">=</span> <span class="token constant">CAL_EASTER_DEFAULT</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">...</span> </code></pre> <p>Ich wollte eigentlich nur wissen, ob es mit der Funktion oder dem Array signifikante Zeitunterschiede gibt - und das ist nicht der Fall. Die Berechnung ist sogar schneller.</p> Feiertage Beta - Neue Versionsnummer: 0.4 Tue, 08 Nov 16 17:02:00 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679508?srt=yes#m1679508 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679508?srt=yes#m1679508 <blockquote> <pre><code class="block">Relative Datumsausdrücke Beginn Sommerzeit: 'last sunday of march' Muttertag: 'second sunday of may' Relative-Ketten 4. Advent: '11/26, next Sunday, +3 weeks' Die Ausdrücke werden je Beistrich einzeln nacheinander ausgeführt. Ausgangszeitpunkt ist der 01.01. des abgefragen Jahres. </code></pre> </blockquote> <p>An sowas plane und überlege ich noch. Ich werde mir zusätzlich mal ansehen ob man eventuell die Crontab-Syntax sinnvoll ein- und umsetzen setzen kann...</p> <p>Die Version ist auf 0.4 gesetzt:</p> <ul> <li>notAfter, notBefore ist realisiert,</li> <li>mehrere Ereignisse (Feiertage, Gedenktage werden ausgegeben.</li> <li>die gelesene ini wird gecacht. (Mit merkbarer Zeitersparnis: <a href="https://home.fastix.org/Tests/PHP:Feiertage/test-feiertage-2017-10.php" rel="nofollow noopener noreferrer">Daten für einen Monat in 14 bis 15ms - auf dem Banana!</a>)</li> </ul> Feiertage Beta Tue, 08 Nov 16 08:57:36 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679455?srt=yes#m1679455 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679455?srt=yes#m1679455 <p>Hallo pl,</p> <blockquote> <p>PS: Guck Dir bitte noch einmal meinen Algorithmus an. Im Gegensatz zu JSON oder anderen zeichenorientierten Algorithmen arbeitet mein Algorithmus mit Längenangaben (Offset) auf Byte-Ebene. Das heißt, dass ein anderer, zeichenorientierter Algorithmus gar nicht performanter sein kann, […]</p> </blockquote> <p>„kann nicht sein” ist keine ausreichende Begründung, wie 1UnitedPower schon sagte: es gibt genau zwei Möglichkeiten, zu beweisen, dass Variante A schneller ist als Variante B. Die erste Variante ist eine Aufwandsabschätzung (siehe <a href="https://en.wikipedia.org/wiki/Big_O_notation" rel="nofollow noopener noreferrer">Big O notation</a>) oder Benchmarks. Wenn du uns keins von beidem vorlegst ist deine Behauptung nur das: eine Behauptung.</p> <blockquote> <p>was Benchmarks auch bestätigen.</p> </blockquote> <p>Dann veröffentliche das doch mal. Ganz klassisch. These, Versuchsaufbau, Messmethode, Ergebnisse, Conclusio.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> Feiertage Beta Tue, 08 Nov 16 10:07:14 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679465?srt=yes#m1679465 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679465?srt=yes#m1679465 <blockquote> <p>Dann veröffentliche das doch mal. Ganz klassisch. These, Versuchsaufbau, Messmethode, Ergebnisse, Conclusio.</p> </blockquote> <p>Ich habe zwar auf These und Conclusio verzichtet, aber Versuchsaufbau, Messmethode, Ergebnisse für das Einlesen vermittels</p> <ul> <li>CSV</li> <li>unserialice</li> <li>json-decode</li> <li>include</li> <li>parse_ini-file</li> </ul> <p>habe ich ja veröffentlicht (<a href="https://home.fastix.org/Tests/performance_data_read/" rel="nofollow noopener noreferrer">die Tests</a> und <a href="https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679286#m1679286" rel="noopener noreferrer">das Fazit</a>) und frage mich, warum PL das ignoriert. Gefällt das Ergebnis nicht?</p> Feiertage Beta Tue, 08 Nov 16 09:52:40 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679461?srt=yes#m1679461 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679461?srt=yes#m1679461 <blockquote> <p>Welchen Grund könnte es noch geben, zwischen gesetzlichen und nicht gesetzlichen Feiertagen zu unterscheiden?</p> </blockquote> <p>Vielleicht ist "Feiertag" inzwischen irreführend, das ist irgendwie so wie mit der Threaddrift. Man fängt mit etwas an und fragt sich: <em>"He, Moment! Wenn ich das kann, dann kann ich ohne großen Aufwand auch noch jenes!"</em>)</p> <p>Es sieht wohl so aus, als würden hausl und ich die Feiertage nur als "Grundausstattung" betrachten. Auf Nutzerseite wäre die Ausgabe eines Kalenders(1) denkbar, bei dem besondere Tage und Feiertage farblich markiert sind und einen Tooltip haben oder auch die monatsweise Ausgabe mit vollständigen Angaben, oder eben der Jahresüberblick über alle Feier- und "Gedenktage". Da können die Anforderungen dann sehr individuell sein.</p> <p>Den Export als Kalenderdatei hat 1united angesprochen.</p> <ol> <li></li> </ol> <p>Kalender meint sowas:</p> <pre><code class="block">Mo Di Mi Do Fr Sa So 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 ... </code></pre> Feiertage Beta Tue, 08 Nov 16 10:10:05 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679466?srt=yes#m1679466 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679466?srt=yes#m1679466 <blockquote> <p>aber sie fallen per Definition auf einen Sonntag, also einen gesetzlichen Ruhetag. Ist die Unterscheidung dann noch sinnvoll?</p> </blockquote> <p>Wenn du Arzt bist oder in der Gastronomie, dann kann das schon Relevanz haben ;) Ich weiß es gibt hier unendlich viele Auswüchse.. Beispielsweise ist der Karfreitag hier in Österreich nur für Evangelische Personen ein Feiertag, sonst nicht (<a href="http://www.feiertage-oesterreich.at/karfreitag/" rel="nofollow noopener noreferrer">http://www.feiertage-oesterreich.at/karfreitag/</a> ). Es gibt auch Pseudofeiertage in den Bundesländern wo man arbeiten muss, aber die Schulen zu haben - also für die Schulen/Schulkinder ein Feiertag, etc etc..</p> <p>Daher fand ich es sehr wichtig das man sich das alles selber konfig. kann wie man es schlussendlich haben will.</p> Feiertage Beta Tue, 08 Nov 16 10:13:52 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679467?srt=yes#m1679467 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679467?srt=yes#m1679467 <blockquote> <p>Da sind eigentlich nur "Experimente" drin. Ich habe ja das Problem, dass auf dem 32-Bit Armel ab 2038 quasi alle Datumsfunktionen versagen und weiß inzwischen woran das liegt: PHP nimmt die Funktionen aus libc - und die versagen auf dem Ding auch. Betroffen ist sogar mktime() - das ist derart "essentiell", dass ich schon eine Menge Zeit in das Problem versenkt habe. Vor allem ist dieses Desaster in PHP nicht (wirklich) dokumentiert. Nur bei easter_date() steht es.</p> </blockquote> <p>Ich nutze auch daher u.a. prinzipiell die DateTime-Klasse von PHP, da funktioniert auch auf 32bit Systemen Daten "Datums" > 2037.</p> <p>Und easter_days() sollte auch dafür benutzbar sein.</p> <blockquote> <p>Die Funktion kann an Stelle von easter_date() genutzt werden um auch für Jahre außerhalb des Wertebereichs von Unix Timestamps (also vor 1970 bzw. nach 2037) das Osterdatum zu bestimmen.</p> </blockquote> <p><a href="http://php.net/manual/de/function.easter-days.php" rel="noopener noreferrer">http://php.net/manual/de/function.easter-days.php</a></p> Feiertage Beta Tue, 08 Nov 16 10:17:29 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679468?srt=yes#m1679468 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679468?srt=yes#m1679468 <blockquote> <blockquote> <p>Welchen Grund könnte es noch geben, zwischen gesetzlichen und nicht gesetzlichen Feiertagen zu unterscheiden?</p> </blockquote> <p>Vielleicht ist "Feiertag" inzwischen irreführend, das ist irgendwie so wie mit der Threaddrift. Man fängt mit etwas an und fragt sich: <em>"He, Moment! Wenn ich das kann, dann kann ich ohne großen Aufwand auch noch jenes!"</em>)</p> <p>Es sieht wohl so aus, als würden hausl und ich die Feiertage nur als "Grundausstattung" betrachten. Auf Nutzerseite wäre die Ausgabe eines Kalenders(1) denkbar, bei dem besondere Tage und Feiertage farblich markiert sind und einen Tooltip haben oder auch die monatsweise Ausgabe mit vollständigen</p> </blockquote> <p>Genau so ist es.. Ist zwar auch irgendwo Missbrauchs-Potenzial und irgendwo auch Off-Topic, kann aber zB für "einfach Serientermine" auch praktisch sein, wenn man nicht was selbst programmieren will.. keine Ahnung erster Sonntag im Mai ist immer Kirchtag etc.. Nur so als Beispiel.</p> <p>Ev. sollte ich noch ein Bemerkung/Notizfeld mit reinnehmen, das man Zusatzinfos erfassen kann. Muss ich mir überlegen.. ein Kalender-Tool wollte ich eigentlich ja auch nicht bauen.. (davon bin auch auch noch meilenweit weg und wird es nicht geben).</p> Feiertage Beta Tue, 08 Nov 16 10:25:02 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679469?srt=yes#m1679469 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679469?srt=yes#m1679469 <p>Mach die Tests bitte mal mit PHP 7. Würde mich interessieren.</p> <p>Bei mir jedenfalls ist es sicher nicht die Datenhaltung sondern die stetige Durchrechnung aller Einträge für das angefragete Jahr bevor die eigenltich Aufgaben (Abfrage, Ausgabe, Suche, etc..) passieren. Das muss so sein, aber im Ernst die paar ms auf oder ab sind mir auch egal.</p> <blockquote> <p>https://home.fastix.org</p> </blockquote> <p>Aber langsam versteh ich warum du so darauf stehst, fastix ;) /IronieOff</p> Feiertage Beta Tue, 08 Nov 16 10:26:37 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679470?srt=yes#m1679470 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679470?srt=yes#m1679470 <p>Hallo,</p> <blockquote> <blockquote> <p>aber sie fallen per Definition auf einen Sonntag, also einen gesetzlichen Ruhetag. Ist die Unterscheidung dann noch sinnvoll?</p> </blockquote> <p>Wenn du Arzt bist oder in der Gastronomie, dann kann das schon Relevanz haben ;)</p> </blockquote> <p>da kann ich nicht ganz folgen. Arzt ... okay, Notdienst oder Bereitschaft oder sowas, klar. Und viele andere Berufsgruppen müssen ebenfalls auch am Sonntag arbeiten. Gastronomie hast du schon genannt, Polizei und andere Sicherheitskräfte, ÖPNV ... Aber für die armen Socken ist es dann auch unerheblich, ob der Sonntag, an dem sie Dienst schieben müssen, zusätzlich auch noch ein Feiertag ist oder nicht.</p> <blockquote> <p>Beispielsweise ist der Karfreitag hier in Österreich nur für Evangelische Personen ein Feiertag, sonst nicht (<a href="http://www.feiertage-oesterreich.at/karfreitag/" rel="nofollow noopener noreferrer">http://www.feiertage-oesterreich.at/karfreitag/</a> ).</p> </blockquote> <p>Huch? Personenabhängige Feiertage? Das habe ich auch noch nicht gehört. Interessant ...</p> <blockquote> <p>Es gibt auch Pseudofeiertage in den Bundesländern wo man arbeiten muss, aber die Schulen zu haben</p> </blockquote> <p>Ja, das nennt man Schulferien. ;-)</p> <blockquote> <p>Daher fand ich es sehr wichtig das man sich das alles selber konfig. kann wie man es schlussendlich haben will.</p> </blockquote> <p>Ja, finde ich auch gut. Mich hat eben nur die Sache mit den nicht-gesetzlichen Sonntags-Feiertagen gestört, das kam mir etwas spitzfindig vor.</p> <p>So long,<br>  Martin</p> <div class="signature">-- <br> Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.<br> - (frei übersetzt nach Douglas Adams) </div> Feiertage Beta Tue, 08 Nov 16 11:04:09 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679475?srt=yes#m1679475 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679475?srt=yes#m1679475 <p>Hallo,</p> <blockquote> <p>Beispielsweise ist der Karfreitag hier in Österreich nur für Evangelische Personen ein Feiertag, sonst nicht (<a href="http://www.feiertage-oesterreich.at/karfreitag/" rel="nofollow noopener noreferrer">http://www.feiertage-oesterreich.at/karfreitag/</a> ).</p> </blockquote> <p>Das hast du falsch zusammengefasst. Da solltest du deine selbstverlinkte Seite lieber nochmal genau lesen!</p> <p>Auch in Bayern gibt es Feiertage, die abhängig von der Konfessionsverteilung in manchen Orten gelten und im nachbarort dann wiederum nicht.</p> <p>Gruß<br> Kalk</p> Feiertage Beta Tue, 08 Nov 16 11:09:35 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679477?srt=yes#m1679477 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679477?srt=yes#m1679477 <blockquote> <p>Ich nutze auch daher u.a. prinzipiell die DateTime-Klasse von PHP, da funktioniert auch auf 32bit Systemen Daten "Datums" > 2037.</p> </blockquote> <p>Nicht auf dem Banana ... Weiß der Teufel, was die Burschen kompiliert haben.</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$t</span> <span class="token operator">=</span> <span class="token function">mktime</span><span class="token punctuation">(</span> <span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">5</span><span class="token punctuation">,</span><span class="token number">5</span><span class="token punctuation">,</span><span class="token number">2039</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"mktime( 1,1,1,5,5,2039 ) : "</span><span class="token punctuation">,</span> <span class="token variable">$t</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"-> "</span><span class="token punctuation">,</span> <span class="token function">date</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">'Y-m-d H:i:s'</span><span class="token punctuation">,</span> <span class="token variable">$t</span> <span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">" \n"</span><span class="token punctuation">;</span> <span class="token variable">$t</span> <span class="token operator">=</span> <span class="token class-name static-context">DateTime</span><span class="token operator">::</span><span class="token function">createFromFormat</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'m/d/Y'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'1/5/2039'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$t</span><span class="token operator">-></span><span class="token function">setTime</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token string single-quoted-string">'("m/d/Y", "1/5/2039") $publishDate->getTimestamp(); -> >>'</span><span class="token punctuation">,</span> <span class="token variable">$t</span><span class="token operator">-></span><span class="token function">getTimestamp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"<<\n"</span><span class="token punctuation">;</span> </span></code></pre> <p>Ausgaben auf dem Banana:</p> <pre><code class="block">php time_test.php mktime( 1,1,1,5,5,2039 ) : -> 1970-01-01 01:00:00 ("m/d/Y", "1/5/2039") $publishDate->getTimestamp(); -> >><< </code></pre> <p>ist aber kein Fehler von mir, denn mit 64 Bit:</p> <pre><code class="block">php /tmp/time_test.php mktime( 1,1,1,5,5,2039 ) : 2188166461-> 2039-05-05 01:01:01 ("m/d/Y", "1/5/2039") $publishDate->getTimestamp(); -> >>2177798461<< </code></pre> <blockquote> <p>Und easter_days() sollte auch dafür benutzbar sein.</p> </blockquote> <p>Ja. Ist es. DAS geht.</p> Feiertage Beta Tue, 08 Nov 16 10:54:54 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679474?srt=yes#m1679474 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679474?srt=yes#m1679474 <blockquote> <p>Mach die Tests bitte mal mit PHP 7. Würde mich interessieren.</p> </blockquote> <p>Das ist PHP 7 - aber auf einem Banana Pi M3.</p> <blockquote> <p>Aber langsam versteh ich warum du so darauf stehst, fastix ;) /IronieOff</p> </blockquote> <p>Der Name ist tatsächlich irgendwie auch Programm.</p> <p>So: auf der "großen Kiste":</p> <p><strong>1. Test: mit 5.5.9-1ubuntu4.20 (cli) (built: Oct 3 2016 13:00:37)</strong></p> <pre><code class="block">============================= Lese 1 mal die data.csv: ============================= Array hat 307 Items. 0.00051 Sekunden ============================= Lese 1 mal die data.json: ============================= Array hat 307 Items. 0.00106 Sekunden ============================= Lese 1 mal die data.ser: ============================= Array hat 307 Items. 0.00056 Sekunden ============================= Lese 1 mal die data.php: ============================= Array hat 307 Items. 0.00172 Sekunden ============================= Lese 1 mal die data.ini: ============================= Array hat 307 Items. 0.00139 Sekunden ============================= Lese 50 mal die data.csv: ============================= Array hat 307 Items. 0.0339 Sekunden (avg. 0.677 ms pro Lesevorgang) ============================= Lese 50 mal die data.json: ============================= Array hat 307 Items. 0.0545 Sekunden (avg. 1.0896 ms pro Lesevorgang) ============================= Lese 50 mal die data.ser: ============================= Array hat 307 Items. 0.0354 Sekunden (avg. 0.7088 ms pro Lesevorgang) ============================= Lese 50 mal die data.php: ============================= Array hat 307 Items. 0.0767 Sekunden (avg. 1.5348 ms pro Lesevorgang) ============================= Lese 50 mal die data.ini: ============================= Array hat 307 Items. 0.0658 Sekunden (avg. 1.3153 ms pro Lesevorgang) </code></pre> <p><strong>2. Test mit hhvm (HipHop VM 3.15.2)</strong></p> <pre><code class="block">============================= Lese 1 mal die data.csv: ============================= Array hat 307 Items. 0.00953 Sekunden ============================= Lese 1 mal die data.json: ============================= Array hat 307 Items. 0.00494 Sekunden ============================= Lese 1 mal die data.ser: ============================= Array hat 307 Items. 0.00486 Sekunden ============================= Lese 1 mal die data.php: ============================= Array hat 307 Items. 0.0058 Sekunden ============================= Lese 1 mal die data.ini: ============================= Array hat 307 Items. 0.00704 Sekunden ============================= Lese 50 mal die data.csv: ============================= Array hat 307 Items. 0.0232 Sekunden (avg. 0.4648 ms pro Lesevorgang) ============================= Lese 50 mal die data.json: ============================= Array hat 307 Items. 0.0273 Sekunden (avg. 0.5455 ms pro Lesevorgang) ============================= Lese 50 mal die data.ser: ============================= Array hat 307 Items. 0.0162 Sekunden (avg. 0.3245 ms pro Lesevorgang) ============================= Lese 50 mal die data.php: ============================= Array hat 307 Items. 0.0052 Sekunden (avg. 0.1045 ms pro Lesevorgang) ============================= Lese 50 mal die data.ini: ============================= Array hat 307 Items. 0.1146 Sekunden (avg. 2.2925 ms pro Lesevorgang) </code></pre> Feiertage Beta Tue, 08 Nov 16 10:33:52 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679471?srt=yes#m1679471 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679471?srt=yes#m1679471 <blockquote> <p>Ja, finde ich auch gut. Mich hat eben nur die Sache mit den nicht-gesetzlichen Sonntags-Feiertagen gestört, das kam mir etwas spitzfindig vor.</p> </blockquote> <p>Interessiert eine Menge Leute -> An manchen ist "Tanzverbot".</p> Feiertage Beta Tue, 08 Nov 16 11:05:53 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679476?srt=yes#m1679476 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679476?srt=yes#m1679476 <blockquote> <p>da kann ich nicht ganz folgen. Arzt ... okay, Notdienst oder Bereitschaft oder sowas, klar. Und viele andere Berufsgruppen müssen ebenfalls auch am Sonntag arbeiten. Gastronomie hast du schon genannt, Polizei und andere Sicherheitskräfte, ÖPNV ... Aber für die armen Socken ist es dann auch unerheblich, ob der Sonntag, an dem sie Dienst schieben müssen, zusätzlich auch noch ein Feiertag ist oder nicht.</p> </blockquote> <p>Bei der Gehaltsabrechnung u.U. schon ;) Aber das ist hier irrelevant. Mit geht es halt auch um die Definition. Frei hat man ja jeden Sonntag (der "Normalo"). Und man hat frei wegen Sonntag und nicht wegen Muttertag. Das solche "Sondertage" einfach per Definition keine gesetzl. Feiertage sind. Das mag spitzfindig sein ok, aber ist halt so ;)</p> <blockquote> <p>Ja, das nennt man Schulferien. ;-)</p> </blockquote> <p>Eben nicht. Es ist tatsächlich ein Feiertag, an dem halt nicht arbeitsfrei ist. <a href="http://www.feiertage-oesterreich.at/st-rupert-24-september/" rel="nofollow noopener noreferrer">http://www.feiertage-oesterreich.at/st-rupert-24-september/</a> Ähnliche Szenarien gibt es mit Bankenfeiertagen in gewissen Ländern etc.. Feiertage an denen "wenige" frei haben.</p> <p>Da geht es halt auch um die Definition an sich. Aber wie gesagt, es steht jedem frei sich das selbst zu gliedern, notieren, wie es einem passt.</p> Feiertage Beta Tue, 08 Nov 16 11:15:46 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679478?srt=yes#m1679478 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679478?srt=yes#m1679478 <blockquote> <p>Auch in Bayern gibt es Feiertage, die abhängig von der Konfessionsverteilung in manchen Orten gelten und im nachbarort dann wiederum nicht.</p> </blockquote> <p>Und den 8.8. der in der Stadt Augsburg, aber nicht in den Gewerbegebieten (in denen die Augsburger arbeiten...) Feiertag ist.</p> Feiertage Beta Tue, 08 Nov 16 11:16:12 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679479?srt=yes#m1679479 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679479?srt=yes#m1679479 <p>Hi,</p> <blockquote> <p>Auch in Bayern gibt es Feiertage, die abhängig von der Konfessionsverteilung in manchen Orten gelten und im nachbarort dann wiederum nicht.</p> </blockquote> <p>ja, aber dann für die ganze Gemeinde, und nicht individuell pro Person nach deren Konfession. Das gibt es in DE meines Wissens nicht.</p> <p>So long,<br>  Martin</p> <div class="signature">-- <br> Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.<br> - (frei übersetzt nach Douglas Adams) </div> Feiertage Beta Tue, 08 Nov 16 11:16:34 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679480?srt=yes#m1679480 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679480?srt=yes#m1679480 <blockquote> <p>Das hast du falsch zusammengefasst. Da solltest du deine selbstverlinkte Seite lieber nochmal genau lesen!</p> </blockquote> <p>Und was ist an meiner Aussage falsch?</p> <blockquote> <p>Auch in Bayern gibt es Feiertage, die abhängig von der Konfessionsverteilung in manchen Orten gelten und im nachbarort dann wiederum nicht.</p> </blockquote> <p>Dem hab ich auch nicht widersprochen.</p> Feiertage Beta Tue, 08 Nov 16 11:21:13 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679481?srt=yes#m1679481 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679481?srt=yes#m1679481 <blockquote> <blockquote> <blockquote> <p>Beispielsweise ist der Karfreitag hier in Österreich nur für <strong>Evangelische Personen</strong> ein Feiertag Das hast du falsch zusammengefasst. Da solltest du deine selbstverlinkte Seite lieber nochmal genau lesen!</p> </blockquote> </blockquote> <p>Und was ist an meiner Aussage falsch?</p> </blockquote> <p>Ich fasse <a href="https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679475#m1679475" rel="noopener noreferrer">das hier</a> mal in Code:</p> <pre><code class="block">"Evangelische Person" != "Person in Ort mit überwiegend evangelischer Bevölkerung" </code></pre> Feiertage Beta Tue, 08 Nov 16 11:30:49 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679485?srt=yes#m1679485 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679485?srt=yes#m1679485 <p>Hallo,</p> <blockquote> <p>Und was ist an meiner Aussage falsch?</p> </blockquote> <p>du behauptest, es gelte <strong>nur</strong> für evangelische Personen.</p> <p>Gruß<br> Kalk</p> Feiertage Beta Tue, 08 Nov 16 11:23:02 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679482?srt=yes#m1679482 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679482?srt=yes#m1679482 <blockquote> <p>Beispielsweise ist der Karfreitag hier in Österreich nur für Evangelische Personen ein Feiertag</p> </blockquote> <p>Ich sprach - wie in dem verlinkten Text - von den Personen.</p> <blockquote> <p>Gesetzliche Regelung Karfreitag ist ein Feiertag <strong>für Angehörige der Evangelischen Kirche</strong> H. B. und A. B., der Altkatholischen Kirche sowie der Methodistenkirche und für diese ein arbeitsfreier Tag.</p> </blockquote> <p>Somit habe ich es korrekt wiedergegeben.</p> Feiertage Beta Tue, 08 Nov 16 11:26:05 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679483?srt=yes#m1679483 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679483?srt=yes#m1679483 <blockquote> <blockquote> <blockquote> <p>Beispielsweise ist der Karfreitag hier in Österreich nur für <strong>Evangelische Personen</strong> ein Feiertag Das hast du falsch zusammengefasst. Da solltest du deine selbstverlinkte Seite lieber nochmal genau lesen!</p> </blockquote> </blockquote> <p>Und was ist an meiner Aussage falsch?</p> </blockquote> <p>Ich fasse <a href="https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679475#m1679475" rel="noopener noreferrer">das hier</a> mal in Code:</p> <pre><code class="block">"Evangelische Person" != "Person in Ort mit überwiegend evangelischer Bevölkerung" </code></pre> <p>Wobei natürlich auch gilt:</p> <pre><code class="block">"gesetzlicher Feiertag" != "kirchlicher Feiertag" </code></pre> <p>Unter der Prämisse stimmt Deine Aussage nämlich: Für <strong>Evangelische Personen</strong> ist der Karfreitag ein Feiertag. Feiern die Katholen den eigentlich nicht?</p> <p><a href="https://de.wikipedia.org/wiki/Karfreitag" rel="nofollow noopener noreferrer">Ich lese</a>:</p> <blockquote> <p>Der Karfreitag (althochdeutsch kara ‚Klage‘, ‚Kummer‘, ‚Trauer‘) ist der Freitag vor Ostern. Er folgt auf den Gründonnerstag und geht dem Karsamstag voraus. Christen gedenken an diesem Tag des Kreuzestodes Jesu Christi.</p> </blockquote> <blockquote> <p>Der Karfreitag wird auch „Stiller“ oder „Hoher Freitag“ genannt. In der katholischen Kirche ist er ein strenger Fast- und Abstinenztag. Unter Einbeziehung des Gründonnerstagabends ist der Karfreitag der erste Tag der österlichen Dreitagefeier (Triduum Sacrum oder Triduum paschale), die in ihrer Gesamtheit in allen christlichen Konfessionen das höchste Fest des Kirchenjahres darstellt und wie ein einziger Gottesdienst gefeiert wird.</p> </blockquote> Feiertage Beta Tue, 08 Nov 16 11:29:30 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679484?srt=yes#m1679484 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679484?srt=yes#m1679484 <p>Hallo,</p> <blockquote> <p>Ich fasse <a href="https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679475#m1679475" rel="noopener noreferrer">das hier</a> mal in Code:</p> <pre><code class="block">"Evangelische Person" != "Person in Ort mit überwiegend evangelischer Bevölkerung" </code></pre> </blockquote> <p>in der von hausl verlinkten österreichischen Definition des Karfreitags steht aber nichts von <strong>Orten</strong> mit überwiegend evangelischer oder katholischer Bevölkerung, sondern von <strong>Angehörigen</strong> der jeweiligen Kirchen. Also Personen.</p> <p>So long,<br>  Martin</p> <div class="signature">-- <br> Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.<br> - (frei übersetzt nach Douglas Adams) </div> Feiertage Beta Tue, 08 Nov 16 11:32:30 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679486?srt=yes#m1679486 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679486?srt=yes#m1679486 <blockquote> <p>Somit habe ich es korrekt wiedergegeben.</p> </blockquote> <p><a href="https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10008168" rel="nofollow noopener noreferrer">Stimmt</a>,</p> <p>Da haben wir wohl die deutsche <strong>Weise</strong> der Regelung (örtlich) voreilig als in Österreich angewendet angenommen. In Österreich hängt es aber an der Person.</p> Feiertage Beta Tue, 08 Nov 16 11:33:40 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679487?srt=yes#m1679487 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679487?srt=yes#m1679487 <blockquote> <p>Feiern die Katholen den eigentlich nicht?</p> </blockquote> <p>Den Karfreitag? Ich würde mal sagen nicht wirklich.. Wäre mir noch nie aufgefallen ;)</p> <p>Es gibt hier den "Usus" am Karfreitag und Aschermittwoch kein Fleisch zu essen, aber ich denk das beachtet kaum noch jemand. Macht ja auch keinen Sinn sich darauf rauszureden und dann einen Lachsschmaus anzurichten. Im Grunde geht es - wie dort steht - eher ums trauern, fasten etc.. Aber das merkt man gar nicht. Und arbeiten muss man auch noch ;)</p> <p>Weihnachten wird auch weit breiter und intensiver gefeiert als Ostern.. Obwohl Ostern das höchste Kirchenfest ist.</p> Feiertage Beta Tue, 08 Nov 16 11:34:52 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679488?srt=yes#m1679488 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679488?srt=yes#m1679488 <blockquote> <p>in der von hausl verlinkten österreichischen Definition des Karfreitags steht aber nichts von <strong>Orten</strong> mit überwiegend evangelischer oder katholischer Bevölkerung, sondern von <strong>Angehörigen</strong> der jeweiligen Kirchen. Also Personen.</p> </blockquote> <p><a href="https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679486#m1679486" rel="noopener noreferrer">Du hast Recht</a>.</p> Feiertage Beta Tue, 08 Nov 16 11:39:01 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679489?srt=yes#m1679489 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679489?srt=yes#m1679489 <blockquote> <blockquote> <p>Und was ist an meiner Aussage falsch?</p> </blockquote> <p>du behauptest, es gelte <strong>nur</strong> für evangelische Personen.</p> </blockquote> <p>Also</p> <blockquote> <p>Gesetzliche Regelung<br> Karfreitag ist ein Feiertag für Angehörige der Evangelischen Kirche H. B. und A. B., der <strong>Altkatholischen Kirche sowie der Methodistenkirche</strong> und für diese ein arbeitsfreier Tag.</p> </blockquote> <p>Ja, jetzt bin ich dabei.. Ja ich meinte damit die Menge der Masse aus Katholiken und Evangelisten. Die anderen dort angeführten Religionen kenne ich in der Praxis gar nicht, das sind wohl theor. Randgruppen - was natürlich nicht heißt es gibt da niemanden.</p> <p>Also: Damit meinte ich aus der breiten Masse der Katoliken und Evanglisten haben "nur" die Ev. frei, die Kath. nicht. ok? (Von wegen ich bin spitzfindig ...)</p> Feiertage Beta Tue, 08 Nov 16 11:42:30 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679490?srt=yes#m1679490 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679490?srt=yes#m1679490 <p>Es gibt da so viele Szenarien, ich denke man sollte sich da nicht verbeissen. Wichtig ist das man es - wenn man es "so" oder "so" darstellen will auch do darstellen können, der Rest ist dann Config Pflege.</p> Feiertage Beta Tue, 08 Nov 16 11:45:16 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679491?srt=yes#m1679491 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679491?srt=yes#m1679491 <p>Hallo,</p> <blockquote> <blockquote> <p>Feiern die Katholen den eigentlich nicht?</p> </blockquote> <p>Den Karfreitag? Ich würde mal sagen nicht wirklich.. Wäre mir noch nie aufgefallen ;)</p> </blockquote> <p>ist ja hier ähnlich. Es gibt natürlich sowohl bei den Protestanten wie auch bei den Katholiken einen gewissen Prozentsatz an Menschen, die ihren christlichen Glauben und damit verknüpfte Traditionen sehr ernst nehmen, und die feiern den Karfreitag natürlich auch. Aber ich wüsste jetzt nicht einmal, auf welche Weise - außer mit dem Besuch eines dedizierten Karfreitags-Gottesdienstes.</p> <p>Ich denke aber, dass der weitaus größere Anteil der Bevölkerung diese kirchlichen Traditionen gar nicht praktiziert, oder sogar (wie ich) kaum <em>kennt</em>.</p> <blockquote> <p>Es gibt hier den "Usus" am Karfreitag und Aschermittwoch kein Fleisch zu essen, aber ich denk das beachtet kaum noch jemand. Macht ja auch keinen Sinn sich darauf rauszureden und dann einen Lachsschmaus anzurichten.</p> </blockquote> <p>Was mich wieder zur Frage bringt: Wieso kein Fleisch, dafür aber Fisch? Für mich schließt der Begriff <em>Fleisch</em> durchaus auch Fisch und Geflügel ein. Wenn also jemand sagt, er sei Vegetarier oder esse während der Fastenzeit kein Fleisch, bringt dann aber Fisch auf den Tisch, dann ist das für mich ein Widerspruch.</p> <blockquote> <p>Weihnachten wird auch weit breiter und intensiver gefeiert als Ostern.</p> </blockquote> <p>Ja. Aber Weihnachten ist auch - deutlich stärker als Ostern - in den letzten 100 Jahren mehr und mehr zum Kommerzfest geworden.</p> <blockquote> <p>Obwohl Ostern das höchste Kirchenfest ist.</p> </blockquote> <p>Das ist es wohl - obwohl ich auch lange Zeit dachte, Weihnachten sei es.</p> <p>Ciao,<br>  Martin</p> <div class="signature">-- <br> Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.<br> - (frei übersetzt nach Douglas Adams) </div> Feiertage Beta Tue, 08 Nov 16 11:45:31 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679492?srt=yes#m1679492 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679492?srt=yes#m1679492 <p>Hallo,</p> <blockquote> <p>Gesetzliche Regelung<br> Karfreitag ist ein Feiertag für Angehörige der Evangelischen Kirche H. B. und A. B., der<br> Altkatholischen Kirche sowie der Methodistenkirche und für diese ein arbeitsfreier Tag.</p> </blockquote> <blockquote> <p>Also: Damit meinte ich aus der breiten Masse der Katoliken und Evanglisten haben "nur" die Ev. frei, die Kath. nicht. ok?</p> </blockquote> <p>Sind Altkatholiken für dich keine Katholiken?</p> <p>Gruß<br> Kalk</p> Feiertage Beta Tue, 08 Nov 16 11:55:54 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679495?srt=yes#m1679495 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679495?srt=yes#m1679495 <blockquote> <p>Sind Altkatholiken für dich keine Katholiken?</p> </blockquote> <p>Ich denke du weißt was ich meine. Wenn du den Tag gerne als Feiertag in deine Config so definieren willst, dann gut so. So Meta-Diskussionen sind immer etwas Mühsam und bringen unterm Strich genau gar nichts für die Lib. Eine Glaubenseinschränkung auf eine Religion o.ä. kann man sich ja über den Filter nach belieben selbst machen.</p> Feiertage Beta - Neue Versionsnummer: 0.6 Thu, 10 Nov 16 16:33:15 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679693?srt=yes#m1679693 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679693?srt=yes#m1679693 <blockquote> <ul> <li>notAfter, notBefore ist realisiert,</li> <li>mehrere Ereignisse (Feiertage, Gedenktage werden ausgegeben.</li> <li>die gelesene ini wird gecacht. (Mit merkbarer Zeitersparnis: <a href="https://home.fastix.org/Tests/PHP:Feiertage/test-feiertage-2017-10.php" rel="nofollow noopener noreferrer">Daten für einen Monat in 14 bis 15ms - auf dem Banana!</a>)</li> </ul> </blockquote> <p>Jetzt Version 0.6</p> <ul> <li>Ereignisse mit fixem Datum.</li> <li>Ereignisse, die mit Datum ab Ostern/Ewigkeitssonntag definiert sind.</li> <li>Ereignisse, die mit "2. Sonntag im Mai" oder 'letzter Sonntag' im Oktober. (Muttertag, Sommerzeit)</li> <li>Jährliche Wiederholungen wie Geburtstage mit Berechnung der Wiederholung (z.B. des wievielten Geburtstags) und konfigurierbarer Ausgabe mit sprintf ('%d. Geburtstag von Martin Luther')</li> <li>periodische Wiederholungen mit Perioden von Tagen oder Monaten. ('Gelber Sack')</li> </ul> <p>Ach so. Ich habe mich für die "Crontab-Methode entschieden". Also keine Kettenangaben.</p> Feiertage Beta Thu, 10 Nov 16 16:34:20 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679694?srt=yes#m1679694 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679694?srt=yes#m1679694 <blockquote> <p>Ja noch was: Ich habe über meine Kalenderprogramme sehr viele Anfragen zu Christlichen Feiertagen in Jahren weit vor 1970.</p> </blockquote> <p>Wann war denn der Ostersonntag im Jahr 302?</p> Feiertage Beta - Neue Versionsnummer: 0.7 Sun, 13 Nov 16 16:38:25 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679989?srt=yes#m1679989 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679989?srt=yes#m1679989 <blockquote> <blockquote> <ul> <li>notAfter, notBefore ist realisiert,</li> <li>mehrere Ereignisse (Feiertage, Gedenktage werden ausgegeben.</li> <li>die gelesene ini wird gecacht. (Mit merkbarer Zeitersparnis: <a href="https://home.fastix.org/Tests/PHP:Feiertage/test-feiertage-2017-10.php" rel="nofollow noopener noreferrer">Daten für einen Monat in 14 bis 15ms - auf dem Banana!</a>)</li> </ul> </blockquote> <p>Jetzt Version 0.6</p> <ul> <li>Ereignisse mit fixem Datum.</li> <li>Ereignisse, die mit Datum ab Ostern/Ewigkeitssonntag definiert sind.</li> <li>Ereignisse, die mit "2. Sonntag im Mai" oder 'letzter Sonntag' im Oktober. (Muttertag, Sommerzeit)</li> <li>Jährliche Wiederholungen wie Geburtstage mit Berechnung der Wiederholung (z.B. des wievielten Geburtstags) und konfigurierbarer Ausgabe mit sprintf ('%d. Geburtstag von Martin Luther')</li> <li>periodische Wiederholungen mit Perioden von Tagen oder Monaten. ('Gelber Sack')</li> </ul> <p>Ach so. Ich habe mich für die "Crontab-Methode entschieden". Also keine Kettenangaben.</p> </blockquote> <p>Jetzt Version 0.7</p> <p>Ich habe doch einen Offset für die Termine eingebaut, die von etwas abhängig sind, wie dem n-ten Wochentag eines Monats. Damit lässt sich auch der angesprochene "vorletzte Sonntag eines Monats" realisieren, das ist einfach der letzte Sonntag, Offset ist -7.</p> <ul> <li> <p><a href="https://home.fastix.org/Tests/PHP:Feiertage/test-feiertage-form.php?jahr=2016&monat=7&gMonat=on&tag=13" rel="nofollow noopener noreferrer">Test auf dem Banana</a> (<a href="https://home.fastix.org/Tests/PHP:Feiertage/test-feiertage-form.php" rel="nofollow noopener noreferrer">für heute</a>)</p> </li> <li> <p><a href="http://www.fastix.org/test/kalender/?jahr=2016&monat=7&gMonat=on&tag=13" rel="nofollow noopener noreferrer">Test auf einem "richtigem" Webserver</a> (<a href="http://www.fastix.org/test/kalender/" rel="nofollow noopener noreferrer">für heute</a>).</p> </li> <li> <p><a href="https://code.fastix.org/Projekte/PHP:Feiertage/" rel="nofollow noopener noreferrer">Projektbeschreibung, Quelltexte und Download</a></p> </li> </ul> Feiertage Beta Thu, 10 Nov 16 20:52:28 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679717?srt=yes#m1679717 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679717?srt=yes#m1679717 <p>Hi,</p> <blockquote> <pre><code class="block language-ini"><span class="token comment"># Oktober[10], Sonntag[7, letzter[L] im Monat</span> <span class="token key attr-name">crontab[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">10,7,L</span>"</span> <span class="token key attr-name">name[]</span> <span class="token punctuation">=</span> <span class="token value attr-value">"<span class="token inner-value">Umstellung auf Winterzeit</span>"</span> </code></pre> </blockquote> <p>Es gibt keine Winterzeit ...</p> <p>vorletzter Sonntag im Oktober? Ist das dann "10,7,2L"? Oder wie gibt man sowas an?</p> <p>cu,<br> Andreas a/k/a MudGuard</p> Feiertage Beta Thu, 10 Nov 16 21:01:22 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679719?srt=yes#m1679719 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679719?srt=yes#m1679719 <p>Hallo,</p> <blockquote> <blockquote> <p>name[] = "Umstellung auf Winterzeit"</p> </blockquote> <p>Es gibt keine Winterzeit ...</p> </blockquote> <p>doch, es gibt eine Sommerzeit. Das impliziert, dass es auch eine Winterzeit (das Gegenstück dazu) gibt. Sonst wäre die Bezeichnung sinnlos.</p> <blockquote> <p>vorletzter Sonntag im Oktober? Ist das dann "10,7,2L"? Oder wie gibt man sowas an?</p> </blockquote> <p>Abgesehen davon: Die Umstellung von Sommer- auf Winterzeit erfolgt am <strong>letzten</strong> Wochenende im Oktober, nicht am vorletzten.</p> <p>Ciao,<br>  Martin</p> <div class="signature">-- <br> Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.<br> - (frei übersetzt nach Douglas Adams) </div> Feiertage Beta Fri, 11 Nov 16 01:02:59 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679735?srt=yes#m1679735 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679735?srt=yes#m1679735 <blockquote> <p>vorletzter Sonntag im Oktober? Ist das dann "10,7,2L"?</p> </blockquote> <p>Danke für den Hinweis auf ein fehlendes Future, aber mangels mir bekannter Anwendung denke ich, wer sowas einzigartiges will mag mich mit Geld überreden.</p> <p>Die nächsten Schritte sind:</p> <p>Wechselbare ini, ein paar Optimierungen/Vervollständigungen, Code säubern und Bugs suchen, Umbenennung des Projekts (bei Feiertagen ist es ja nicht geblieben ...), eine Beispielanwendung, eine Oberfläche zum Erstellen und Löschen von Ereignissen, Export einzelner oder aller Daten nach iCalendar/ical ...</p> Feiertage Beta Thu, 10 Nov 16 21:11:14 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679721?srt=yes#m1679721 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679721?srt=yes#m1679721 <p>Hi,</p> <blockquote> <blockquote> <p>Es gibt keine Winterzeit ...</p> </blockquote> <p>doch, es gibt eine Sommerzeit.</p> </blockquote> <p>unbestritten.</p> <blockquote> <p>Das impliziert, dass es auch eine Winterzeit (das Gegenstück dazu) gibt.</p> </blockquote> <p>Nein. Das, was fälschlicherweise als Winterzeit bezeichnet wird, ist die Normalzeit.</p> <blockquote> <blockquote> <p>vorletzter Sonntag im Oktober? Ist das dann "10,7,2L"? Oder wie gibt man sowas an?</p> </blockquote> <p>Abgesehen davon: Die Umstellung von Sommer- auf Winterzeit erfolgt am <strong>letzten</strong> Wochenende im Oktober, nicht am vorletzten.</p> </blockquote> <p>Ja und? Hab ich Gegenteiliges behauptet (wobei ich nicht die "Winterzeit", sondern die Normalzeit erwähnen würde).</p> <p>Ich wollte schlicht wissen, wie in Tagwaechters Konfiguration der vorletzte Sonntag im Oktober definiert werden kann. Unabhängig davon, was für ein Gedenktag, Feiertag oder sonstiger Tag ist.</p> <p>cu,<br> Andreas a/k/a MudGuard</p> Feiertage Beta Thu, 10 Nov 16 22:22:34 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679729?srt=yes#m1679729 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679729?srt=yes#m1679729 <p>Hallo</p> <blockquote> <blockquote> <blockquote> <p>Es gibt keine Winterzeit ...</p> </blockquote> <p>doch, es gibt eine Sommerzeit.</p> </blockquote> <p>unbestritten.</p> <blockquote> <p>Das impliziert, dass es auch eine Winterzeit (das Gegenstück dazu) gibt.</p> </blockquote> <p>Nein. Das, was fälschlicherweise als Winterzeit bezeichnet wird, ist die Normalzeit.</p> </blockquote> <p>und die wird als Gegenstück zur Sommerzeit im Volksmund eben auch als Winterzeit bezeichnet.</p> <p>Welche von den beiden nun als "normal" bezeichnet wird, ist eine rein subjektive Festtlegung. Mir ist es völlig egal, wenn nur die zweimal im Jahr stattfindende Umstellung endlich wegfiele.</p> <p>Nicht dass es mich persönlich stört - die eine Stunde hin oder her liegt in der Grö0enordnung, in der mein Biorhythmus sowieso von Tag zu Tag schwankt. Aber das Theater mit der Umstellung (ÖPNV, Fernsehprogrammm) ist einfach lästig.</p> <p>So long,<br>  Martin</p> <div class="signature">-- <br> Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.<br> - (frei übersetzt nach Douglas Adams) </div> Feiertage Beta Fri, 11 Nov 16 12:39:55 Z https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679778?srt=yes#m1679778 https://forum.selfhtml.org/self/2016/nov/4/feiertage-beta/1679778?srt=yes#m1679778 <p>Ich habe den Eintrag geändert, Genauheim hat viele Einwohner.</p> <blockquote> <p>Nicht dass es mich persönlich stört - die eine Stunde hin oder her liegt in der Grö0enordnung, in der mein Biorhythmus sowieso von Tag zu Tag schwankt.</p> </blockquote> <p>Auch mein Tagesablauf ist nicht so fixiert. Dennoch bereitet mir die Umstellerei Probleme.</p> <p>Für den Montag nach Umstellung auf Sommerzeit nehme ich z.B. keine Aufträge für Seminare mehr an. Das ist mein persönlicher Pechtag: Wenn ich pünktlich sein sollte fallen Züge aus, werden Autobahnen unmittelbar vor mir wegen eines Unfalls für 4 Stunden voll gesperrt, lauter SOWAS.</p>