![]() |
Amerikanische Feiertage
Hi,
gibt es irgendwo schon eine unit, die einem sagen kann ob ein bestimmter tag ein amerikanischer feiertag ist ? bzw. kennt ihr eine Seite wo alle amerikanischen Feiertage lückenlos mit berechnung aufgelistet sind... so dass man sowas erstellen könnte Danke Ralf |
Re: Amerikanische Feiertage
Man Leute. Es gibt im Web so tolle Suchmaschienen. Benutzt sie doch einfach mal.
![]() Und siehe da: ![]() mfg edit: Und wenn das noch nicht genug sind, dann fass halt ![]() edit2: Und hier gibts auch noch was. ![]() |
Re: Amerikanische Feiertage
Sorry,
die Feiertage hätte ich sicher gefunden - mir gings auch mehr um die erste frage ob schon ne unit zur berechnung derselbigen existiert Wikipedia hät ich natürlcih selber drauf kommen können :wall: :wall: Trotzdem Danke Ralf |
Re: Amerikanische Feiertage
Ich denke nicht das es dazu eine Fertige Unit gibt. Musst die wohl selbst was ausdenken.... Bei Google hab ich dazu auch nix gefunden
mfg ![]() |
Re: Amerikanische Feiertage
hier mal der code für die Deutschen Feiertage, weiss nicht mehr, wo ich den her habe, glaube SDC.
kann man ja anpassen, ist aber ne feine grundlage:
Delphi-Quellcode:
raik
unit U_Feiertage;
interface uses Windows, SysUtils; type THoliday = Record Date: TDateTime; Name: String; End; THolidayTable = Array Of THoliday; Function GetHolidayTable(Year: Word): THolidayTable; implementation Function GetHolidayTable(Year: Word): THolidayTable; Procedure AddHoliday(DD, MM: Word; HDName: String); Overload; Begin SetLength(Result, High(Result) + 2); With Result[High(Result)] Do Begin Date := EncodeDate(Year, MM, DD); Name := HDName; End; End; Procedure AddHoliday(HDDate: TDateTime; HDName: String); Overload; Begin SetLength(Result, High(Result) + 2); With Result[High(Result)] Do Begin Date := HDDate; Name := HDName; End; End; Function GetEasterDate(YYYY: Word): TDateTime; Var A, B, C, D, E, F, G, H, I, K, L, M, N, P: Word; DD, MM: Word; Begin a := YYYY Mod 19; b := YYYY Div 100; c := YYYY Mod 100; d := b Div 4; e := b Mod 4; f := (b + 8) Div 25; g := (b - f + 1) Div 3; h := (19 * a + b - d - g + 15) Mod 30; i := c Div 4; k := c Mod 4; l := (32 + 2 * e + 2 * i - h - k) Mod 7; m := (a + 11 * h + 22 * l) Div 451; n := (h + l - 7 * m + 114) Div 31; p := (h + l - 7 * m + 114) Mod 31 + 1; DD := p; MM := n; Result := EncodeDate(YYYY, MM, DD); End; Var EDate: TDateTime; Begin AddHoliday(1, 1, 'Neujahr'); AddHoliday(6, 1, 'Heiligen Drei Könige'); AddHoliday(1, 5, 'Tag der Arbeit'); AddHoliday(3, 10, 'Tag der deutschen Einheit'); AddHoliday(31, 10, 'Reformationstag'); AddHoliday(25, 12, '1. Weihnachtsfeiertag'); AddHoliday(26, 12, '2. Weihnachtsfeiertag'); EDate := GetEasterDate(Year); AddHoliday(EDate, 'Ostersonntag'); AddHoliday(EDate - 2, 'Karfreitag'); AddHoliday(EDate + 1, 'Ostermontag'); AddHoliday(EDate + 39, 'Christi Himmelfahrt'); AddHoliday(EDate + 49, 'Pfingstsonntag'); AddHoliday(EDate + 50, 'Pfingstmontag'); //Ermittelt den 3. Mitwoch im November ... EDate := EncodeDate(Year, 11, 1); EDate := EDate + ((11 - DayOfWeek(EDate)) Mod 7) + 14; AddHoliday(EDate, 'Buß- und Bettag'); End; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz