Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Amerikanische Feiertage (https://www.delphipraxis.net/43144-amerikanische-feiertage.html)

th_bone 29. Mär 2005 20:48


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

mr47 29. Mär 2005 21:06

Re: Amerikanische Feiertage
 
Man Leute. Es gibt im Web so tolle Suchmaschienen. Benutzt sie doch einfach mal.
G O O G L E

Und siehe da: Wikipedia - Amerikanische Feiertage

mfg

edit: Und wenn das noch nicht genug sind, dann fass halt die Ergebnisse dieser Suchanfrage (*Klick*) zusammen. Dann müsstest du die meisten/alle haben.

edit2: Und hier gibts auch noch was. Klickme

th_bone 29. Mär 2005 21:27

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

mr47 29. Mär 2005 21:48

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 http://www.msigna.de.vu/1.jpg

kiar 29. Mär 2005 22:01

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:
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.
raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 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