OsterSonntag Berechnen

  • Hi Leute.

    Bald ist es wieder so weit Ostern, ganz Deutschland geht auf Eier suche. :rofl:
    Aus diesem anlas hab ich mir gedanken gemacht wie hir im Forum vorgestellten Funktionen schlanker zu gestalten.


    Ostersonntag Berechnen:

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    ;===================================================================================================================================#
    ;Function Name....: Ostern($nYear = 0)
    ;
    ;Description......: Berechnung von Ostersonntag, sehr schlanke und kompakter Code
    ;$nYear...........: Jahr angabe
    ;
    ;Return Value(s)..: Ostersonntag Format(YYYY/MM/DD)
    ;
    ;Author(s)........: Kleiner (http://www.autoit.de)
    ;====================================================================================================================================#

    [/autoit] [autoit][/autoit] [autoit]

    Func Ostern($nYear = 0)
    If Not $nYear Then $nYear = @YEAR
    Local $d = Mod(((255 - 11 * (Mod($nYear, 19))) - 21), 30) + 21
    Local $Delta = $d + IIF($d > 48, 1, 0) + 6 - _
    Mod(($nYear + Int($nYear / 4) + $d + IIf($d > 48, 1, 0) + 1), 7)
    Return _DateAdd('d', $Delta, $nYear & '/' & 3 & '/' & 1)
    EndFunc ;==>Ostern

    [/autoit] [autoit][/autoit] [autoit]

    Func IIF($V_Expr, $F_True = True, $F_False = False)
    If $V_Expr Then Return $F_True
    Return $F_False
    EndFunc ;==>IIF

    [/autoit]

    Edit:/ Leider stimmt sie nicht für alle Jahre.
    Ich habe sie getestet für die Jahre 1900 bis 2100 und zwar mit der "Original" Gauß´schen Osterformel. Sie stimmt nicht für die Jahre 1924 1954 1981 1992 2076 und für die Jahre ab 2100.
    Die Gauß´sche Formel ist so komplex, dass man sie kaum als Formel oder Function definieren kann.
    Aber dann sind wir immerhin für die nächsten 65 Jahre noch gut. :rolleyes:

    Lg Kleiner

    2 Mal editiert, zuletzt von Kleiner (15. Februar 2011 um 16:21)

  • Hallo autoBert!

    Ich kenn sie habe mit BugFix Func mein Dienstplan Proc geschrieben

    Zitat

    Aus diesem anlas hab ich mir gedanken gemacht wie hir im Forum vorgestellten Funktionen schlanker zu gestalten.

    es ist wa ein versuch die Berechnung so kurz wie möglich zu halten. ;)

    Lg Kleiner