Ich muss wissen, wie man USA Ferien berechnet. Ich brauche eine Lösung, die für jedes Jahr funktioniert. Ich wollte die Daten nicht einfach in einer Datenbank speichern, die gepflegt werden müsste.
Für Feiertage am Wochenende muss es der Politik der US-Regierung folgen, sich auf einen Wochentag einzustellen. Wenn es an einem Samstag fällt, wird es auf Freitag eingestellt. Wenn es an einem Sonntag fällt, muss es auf Montag eingestellt werden. Ich verstehe viele (die meisten?) Banken in den USA tun es auf die gleiche Weise.
Wie berechne ich eine Liste von USA-Ferien?
%Vor%Dies ist eine Möglichkeit, es zu tun. Eine Schwäche dieser Methode ist, dass, da die Regeln fest codiert sind, ich den Code in dem seltenen Fall ändern müsste, dass der Kongress die Regeln geändert hat. Für meine Inhouse-Software ist das kein Problem, aber für andere möglicherweise.
Ich berechne auch nicht Ostern, weil das kein US-Feiertag ist. Siehe Nature (1876) -Algorithmus zur Berechnung des Osterdatums
%Vor%Jay Muntz auf CodeProject hat eine ausgezeichnete Implementierung von Ferien mit einer XML-Datei, um die Regeln zu speichern. Dieser Code passt sich jedoch nicht für Wochenenden an.
Auch seine Version des Steuertages (15. April) korrigiert den Emanzipationstag in Washington DC nicht, obwohl dies für diese Frage irrelevant sein könnte.
Dynamischer Feiertags-Datumsrechner von Jay Muntz, 5. Januar 2006
Hier ist ein Code, den ich in C # ausgepeitscht habe. Jeder Feiertag wird als eine Instanz von Holiday dargestellt. Um das Datum der Einhaltung durch die Bundesregierung zu erhalten, rufen Sie einfach die FederalObservance-Methode des Objekts auf. Beachten Sie jedoch, dass nur einer der Feiertage ein tatsächlicher Feiertag ist; Ich habe gerade zwei Feiertage als Beispiele erstellt.
%Vor%Hier ist eine C # -Lösung, die Lync verwendet. Ich habe keine anderen Antworten mit diesem Ansatz gesehen. Ich stelle alle Tage des Monats in eine Liste vom Typ DateTime und benutze dann Lync, um genau das auszuwählen, was ich möchte. Ja, das braucht mehr Zeit / Speicher, aber wenn das nicht die kritischste Priorität ist, schau, wie einfach es liest ...
%Vor%Tags und Links vb.net