AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Arbeitstage berechnen

Ein Thema von LogoPie · begonnen am 25. Jan 2005 · letzter Beitrag vom 23. Mai 2009
 
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#20

Re: Arbeitstage berechnen

  Alt 23. Mai 2009, 13:45
Ergänzung Ostersonntag:

Zitat Wikipedia:

Zitat:
Obwohl die Gaußsche Osterformel den Oster-Algorithmus elegant kurz darstellt, werden zwei Ausnahmen von ihr nicht erfasst. Heiner Lichtenberg hat 1997 eine Modifikation der Formel vorgeschlagen, mit der keine Ausnahmen extra beachtet werden müssen. Diese Formel ist nachfolgend wiedergegeben
http://de.wikipedia.org/wiki/Gaußsche_Osterformel

1. die Säkularzahl: K(X) = X div 100
2. die säkulare Mondschaltung: M(K) = 15 + (3K + 3) div 4 − (8K + 13) div 25
3. die säkulare Sonnenschaltung: S(K) = 2 − (3K + 3) div 4
4. den Mondparameter: A(X) = X mod 19
5. den Keim für den ersten Vollmond im Frühling: D(A,M) = (19A + M) mod 30
6. die kalendarische Korrekturgröße: R(D,A) = D div 29 + (D div 28 − D div 29) (A div 11)
7. die Ostergrenze: OG(D,R) = 21 + D − R
8. den ersten Sonntag im März: SZ(X,S) = 7 − (X + X div 4 + S) mod 7
9. die Entfernung des Ostersonntags von der
Ostergrenze (Osterentfernung in Tagen): OE(OG,SZ) = 7 − (OG − SZ) mod 7
10. das Datum des Ostersonntags als Märzdatum
(32. März = 1. April usw.): OS = OG + OE


hier habe ich folgenden Code nach dieser Formel gefunden:


http://cerebrumsoft.org/node/54

Delphi-Quellcode:
(* Hucke
  Berechnung des Ostersonntag
  Algorithmus nach Gauß
  modifiziert von Lichtenberg
  aus: Wikipedia "Gaußsche Osterformel" 26.02.2008
*)

 
uses
    sysutils;
 
function EasterSunday_Lichtenberg(const Jahr :integer): TDateTime;
var
    k, // Säkularzahl säkular = weltlich im Gegensatz zu kirchlich
    m, // säkulare Mondschaltung
    s, // säkulare Sonnenschaltung
    a, // Mondparameter
    d, // erster Vollmond im Frühling
    r, // kalendarische Korrekturgröße
    og, // Ostergrenze
    sz, // erster Sonntag im März
    oe, // Differenz Ostersonntag Ostergrenze (Osterentfernung)
    os, // Ostersonntag als Märzdatum
    tag,
    monat : integer;
 
begin
    k := Jahr div 100;
    m := 15 + (3 * k + 3) div 4 - (8 * k + 13) div 25;
    s := 2 - (3*k + 3 ) div 4;
    a := Jahr mod 19;
    d := (19 * a + m ) mod 30;
    r := d div 29 + (d div 28 - d div 29) * (a div 11);
    og := 21 + d - r;
    sz := 7 - (Jahr + Jahr div 4 + s ) mod 7;
    oe := 7 - (og - sz) mod 7;
    os := og + oe;
 
    if os <= 31 then begin
       Tag := os;
       Monat := 3;
    end
    else begin
       Tag := os - 31;
       Monat := 4;
    end;
 
    result := encodedate(jahr, Monat, Tag);
 
end;
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 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