Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Deutsche Feiertage berechnen (https://www.delphipraxis.net/201526-deutsche-feiertage-berechnen.html)

olaf 29. Jul 2019 10:23

Delphi-Version: 5

Deutsche Feiertage berechnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

ich habe die Datei mit der Berechnung der deutschen Feirtage von Thomas Franz erweitert, einen Bug gefixt, eine Id für den Feiertag hinzugefügt und in eine Klasse gepackt. Unit einfach einbinden und wie folgt aufrufen.

Delphi-Quellcode:
var
  Feiertage: TArFeiertage;
  i: Integer;
begin
  TFeiertag.FeiertageBerechnen(2019,Feiertage);

  for i := Low(Feiertage) to High(Feiertage) do
      ShowMessage(IntToStr(Feiertage[i].id)+ '  '+  Feiertage[i].Name+'  '+ FormatDateTime('ddd. d.m.yyyy',Feiertage[i].Datum));
Viel Spaß
Olaf

DieDolly 29. Jul 2019 10:48

AW: Deutsche Feiertage berechnen
 
Wäre ein ein solcher Aufruf und eine solche Zuweisung nicht wesentlich intuitiver?

Delphi-Quellcode:
Feiertage := TFeiertag.FeiertageBerechnen(2019);

Der schöne Günther 29. Jul 2019 11:29

AW: Deutsche Feiertage berechnen
 
Ich will das nicht schlecht machen, aber wenn ich so etwas bräuchte würde ich eine offizielle Liste bzw. öffentlich abrufbaren Kalender nehmen und nicht so etwas. Weder trifft das irgendeine Aussage über die unterschiedliche Situation in den einzelnen Bundesländern (z.B. der 2019 in Berlin eingeführte 8. März), noch sind beispielsweise Aschermittwoch oder Adventssonntage gesetzliche Feiertage...

Billa 29. Jul 2019 12:28

AW: Deutsche Feiertage berechnen
 
@Der schöne Günther:

Du hast natürlich Recht, aber auch "Öffentlich abrufbar" ist Vieles...
Gibt es eigentlich sowas wie einen offiziellen, verbindlichen Kalender? Und wenn ja, ist zu befürchten, daß man vermutlich nicht mit einem Parameter auskommen wird. Schon allein die Kirchenfeiertage in den Bundesländern sind unterschiedlich.

jobo 29. Jul 2019 13:34

AW: Deutsche Feiertage berechnen
 
Ich nehm persönlich immer sowas, ad hoc
https://www.schulferien.org/deutschl...ein-westfalen/

Algorithmen sind praktisch für autarke Geräte, die nicht immer online sind / sein können.
Raumschiffe z.B. oder in Meisenheim auch mit normalem PC.

Es gibt sicher reale Anwendungsfälle, wo man nicht direkt ne super Microservice Architektur anzapfen muss und will.

Früher war gar nichts online, also (fast) alles berechnet, denn auch Speicherplatz war "unbezahlbar". Daylight Saving ist ein schönes Beispiel. Alte Geräte werden das nach der EU Neuregelung im ein oder anderen Fall nicht mehr hinbekommen.

Als Datenbankfreund bevorzuge ich natürlich große Listen, wo jeder sich ankreuzen kann, was er unter Feiertag, Urlaub, Ferien, Wochenende, .. versteht.

olaf 30. Jul 2019 05:52

AW: Deutsche Feiertage berechnen
 
Hallo DiDolly,

Du hast Recht. Vielen Dank für den Hinweis.

Olaf

olaf 30. Jul 2019 09:10

AW: Deutsche Feiertage berechnen
 
Hallo,

ich habe zu schnell DiDolly zugestimmt. War aus dem Bauch raus. Wie von DiDolly vorgeschlagen kommt der Fehler:

Inkompatible Typen: 'TArFeiertage' und 'procedure, untyped pointer or untyped parameter'

Der Aufruf muß so erfolgen wie von mir beschrieben.

Olaf

DieDolly 30. Jul 2019 10:10

AW: Deutsche Feiertage berechnen
 
Zitat:

ich habe zu schnell DiDolly zugestimmt. War aus dem Bauch raus. Wie von DiDolly vorgeschlagen kommt der Fehler:

Inkompatible Typen: 'TArFeiertage' und 'procedure, untyped pointer or untyped parameter'

Der Aufruf muß so erfolgen wie von mir beschrieben.
Ich habe ja auch nicht gesagt, dass dein Aufruf falsch ist. Aber er ist äußerst ungewöhnlich und kein Standard.
Wenn man das einfach so umändert ist es klar, dass der Compiler meckert.

freimatz 30. Jul 2019 10:43

AW: Deutsche Feiertage berechnen
 
Zitat:

Zitat von Billa (Beitrag 1438255)
Gibt es eigentlich sowas wie einen offiziellen, verbindlichen Kalender? Und wenn ja, ist zu befürchten, daß man vermutlich nicht mit einem Parameter auskommen wird. Schon allein die Kirchenfeiertage in den Bundesländern sind unterschiedlich.

Das kommt drauf an was Du unter offiziell verstehst. :twisted:
Wenn Du gesetzliche Feiertage meinst, da gibt es Gesetze dazu.

Und noch ein Punkt: wieso Bundesländern? Vermutlich implizierst du damit, dass es um die Bundesrepublik Deutschland geht. Ts, ts, sehr enges Weltbild :P
Übrigens in der Schweiz kann jede Gemeinde noch verbindliche Feiertage haben.

Jasocul 30. Jul 2019 10:56

AW: Deutsche Feiertage berechnen
 
Zitat:

Zitat von freimatz (Beitrag 1438373)
Übrigens in der Schweiz kann jede Gemeinde noch verbindliche Feiertage haben.

Ist in Deutschland nicht anders. Augsburg hat zum Beispiel einen eigenen Feiertag (Augsburger Friedensfest).

p80286 30. Jul 2019 11:06

AW: Deutsche Feiertage berechnen
 
Zitat:

Zitat von freimatz (Beitrag 1438373)
Und noch ein Punkt: wieso Bundesländern? Vermutlich implizierst du damit, dass es um die Bundesrepublik Deutschland geht. Ts, ts, sehr enges Weltbild :P
Übrigens in der Schweiz kann jede Gemeinde noch verbindliche Feiertage haben.

Da es ursprünglich um deutsche Feiertage ging, eine verständliche Sicht der Dinge.
Empfehlenswert ist ein Blick in die Wikipedia und die dazugehörigen Links. Alleine die verschiedenen Kirchenkalender, die für viele Menschen durchaus noch wichtig sind, tragen nicht unbedingt zur Vereinfachung bei.

Gruß
K-H

Billa 31. Jul 2019 06:15

AW: Deutsche Feiertage berechnen
 
@freimatz: Wenn man schon rabulistisch unterwegs ist, sollte man auch richtig lesen. Es ist mit keinem Wort erwähnt, dass das Problem auf Deutschland beschränkt ist, der Verweis auf Bundesländer zeigt lediglich auf, dass bereits bei den Kirchenfeiertagen allein in nur einem Land, mehr als nur das Jahr zu berücksichtigen ist. Ok, man hätte ganz genau schreiben müssen "..in den Bundesländern der Bundesrepublik Deutschland". Ich erbitte gnädige Verzeihung für die Ungenauigkeit.

Ja, es gibt Gesetze. Und Du kennst auch eine Stelle, wo man die Feiertage z.B. tabellarisch herunterladen kann? Vermutlich nicht, sonst - nehme ich an - hättest Du doch darauf verwiesen. Oder?

Wie man so ohne weitere Informationen auf ein "enges Weltbild" schließt, ist mir rätselhaft. Jeder sieht (und liest) halt was er will. :cheers:

@Thema

Mein Punkt ist eher die Frage nach Verbindlichkeit. Da die nicht endgültig garantiert werden kann, führt - wie jobo und p80286 schon schrieben - kein Weg an Konfigurierbarkeit und Parametrierung vorbei. Grundlage könnte eine Tabelle mit den Formeln für einzelne (z.B. die "beweglichen") Feiertage sein. Gerne auch mit zusätzlichen Attributen wie Gültigkeitsbereich u.ä.. Das erfordert immer ein wenig Pflege, sorgt aber (wie z.B. Änderung des deutschen Nationalfeiertags vom 17.Juli zum 3.Oktober) für entsprechende Flexibilität. Ein Programm, das auch Zeiträume in der Vergangenheit behandelt, muss das berücksichtigen.

Das alles hängt von der Problemstellung ab. Vielleicht genügt ja für den Zweck auch ein einfacher Ansatz. Ich würde in diesem Fall den Ansatz von DieDolly vorziehen.

haentschman 31. Jul 2019 06:24

AW: Deutsche Feiertage berechnen
 
Moin...8-)
Zitat:

Ich würde in diesem Fall den Ansatz von DieDolly vorziehen.
..kommt auch eine Online Lösung in Betracht? Ich müßte die Addresse mal raussuchen...Du sendest eine Anfrage an den Server und du bekommst einen JSON mit den Daten zurück. :thumb:

jobo 31. Jul 2019 06:33

AW: Deutsche Feiertage berechnen
 
Zitat:

Zitat von freimatz (Beitrag 1438373)
Und noch ein Punkt: wieso Bundesländern? Vermutlich implizierst du damit, dass es um die Bundesrepublik Deutschland geht. Ts, ts, sehr enges Weltbild :P

Zitat:

Zitat von Billa (Beitrag 1438423)
@freimatz: Wenn man schon rabulistisch unterwegs ist, sollte man auch richtig lesen.


Tja, der Threadtitel lautet: "Deutsche Feiertage berechnen"
Wäre die Frage, was man daraus implizieren könnte..
;-)

freimatz 31. Jul 2019 09:06

AW: Deutsche Feiertage berechnen
 
Wo ist denn der Smiley mit ... ah da :duck:
Tut mir leid.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz