Die Grundlagen des julianischen und gregorianischen Kalenders

Die Osterformel von Karl Friedrich Gauß in BASIC

Der Mathematiker Karl Friedrich Gauß hat sich im Jahr 1800 des Ostertermins angenommen und entsprechende Formeln dafür entwickelt. Zusätzlich entwarf er noch eine Formel, um aus dem julianischen Jahr den ersten Tag des Paschafestes zu bestimmen. Diese habe ich in die Programmiersprache BASIC umgeschrieben und getestet. Die Formeln wurden von mir so erweitert, dass die Variable "Ostern%" immer die Tage zum Ostersonntag ab dem 1. Januar angibt. Die Zeilen IF (Jahr... und Ostern =... gehören also nicht zur eigentlichen Formel!

SUB JulianischeOstern (Jahr, Ostern)
  'Gaußsche Formel für den Julianischen Kalender
  IF Jahr MOD 4 = 0 THEN Feb = 29 ELSE Feb = 28
  a = Jahr MOD 19
  b = Jahr MOD 4
  c = Jahr MOD 7
  d = (19 * a + 15) MOD 30
  e = (2 * b + 4 * c + 6 * d + 6) MOD 7
  Ostern = 31 + Feb + 21 + d + e
END SUB

SUB Gauss(Jahr, Ostern)
  'Gaußsche Formel für den Gregorianischen Kalender gültig von 1583 bis 2499
  IF (Jahr MOD 4 = 0 AND Jahr MOD 100 lt;gt; 0) OR Jahr MOD 400 = 0 THEN Feb = 29 ELSE Feb = 28
  SELECT CASE Jahr
    CASE 1583 TO 1699
      M = 22: N = 2
    CASE 1700 TO 1799
      M = 23: N = 3
    CASE 1800 TO 1899
      M = 23: N = 4
    CASE 1900 TO 2099
      M = 24: N = 5
    CASE 2100 TO 2199
      M = 24: N = 6
    CASE 2200 TO 2299
      M = 25: N = 0
    CASE 2300 TO 2399
      M = 26: N = 1
    CASE 2400 TO 2499
      M = 25: N = 1
  END SELECT
  a = Jahr MOD 19
  b = Jahr MOD 4
  c = Jahr MOD 7
  d = (19 * a + M) MOD 30
  e = (2 * b + 4 * c + 6 * d + N) MOD 7
  Ostern = 31 + Feb + 21 + d + e
  IF Ostern - Feb = 87 THEN
     Ostern = Ostern - 7
  ELSEIF a > 10 AND d = 28 AND Ostern - Feb = 86 THEN
     Ostern = Ostern - 7
  END IF
END SUB