
In welk weekend valt Pasen?

Pasen valt op de zondag, die op de eerste volle maan op of na 21 maart volgt. Aldus schreef het concilie van Nicea in 325 n.C. voor. Om de paasdatum te kunnen bepalen moeten dus twee dingen gegeven zijn. In de eerste plaats het verloop van de maancyclus (lunatie) en daarmee de positie van de volle manen binnen het jaar, en in de tweede plaats het weekverloop en daarmee de positie van de zondagen binnen het jaar.

De wijze waarop de paasdatum met behulp van die twee gegevens wordt vastgesteld is voorgeschreven door paus Gregorius XIII in 1582. Hij corrigeerde de Juliaanse tijdrekening zodanig dat de gemiddelde lengte van het jaar, dat in de Juliaanse tijdrekening 365,25 dagen was, beter overeenkwam met de juiste lengte van het zonnejaar (het tropische jaar), 365,2422 dagen. Dat deed hij door in elke eeuwjaar behalve elk vierde een schrikkeldag te schrappen. Zo kwam de gemiddelde lengte van het jaar op 365,2424 dagen. Het lijken heel kleine verschillen, maar in 1582 was de Juliaanse kalender al 10 dagen achtergeraakt! Met deze zelfde correcties werd voortaan ook bij de berekening van de paasdatum rekening gehouden. Bovendien werd bij die berekening voortaan rekening gehouden met het kleine verschil van 1,48 uur tussen 19 zonnejaren en 235 maansomlopen dat sinds het concilie van Nicea de Paasdatum ook al in het ongerede had gebracht.

Zoals gezegd berust de paasrekening in de eerste plaats op het verloop van de maancyclus binnen het jaar. Die is bij benadering gegeven als bekend is in welke toestand de maancyclus is bij het begin van het jaar op 1 januari. Daartoe wordt het begrip "epacta" gebruikt, dat is het aantal dagen dat sinds de laatste nieuwe maan tot 1 januari is verstreken.

De berekening van de epacta is gebaseerd op de cyclus van de Griekse astronoom Metoon. Deze ontdekte in het jaar 432 v.C. dat de duur van 19 zonsomlopen juist overeenkomt met 235 maansomlopen. Deze 6940 dagen tellende cyclus wordt dan ook naar hem de cyclus van Metoon genoemd. Op basis ervan stelde hij de nieuwe Griekse tijdrekening in. In de 19 jaren van de cyclus zouden er 12 jaren met 12 maanmaanden zijn en 7, de schrikkeljaren, met 13 maanmaanden. De hele cyclus bevatte dan precies 235 maanden. Daarvan waren er 125 vol (30 dagen) en 110 leeg (29 dagen, ook wel hol genoemd). De joodse kalender, nu nog in gebruik bij de synagogen, lijkt heel veel op die van Metoon.

De cyclus van Metoon klopt niet helemaal exact. Hij telt 6940 dagen, wat neerkomt op gemiddeld 365,2632 dagen per jaar. Dat is al wat langer dan het Juliaanse jaar van 365,25 dagen dat ook al wat te lang was. Een zonnejaar duurt namelijk gemiddeld 365,2422 dagen, zodat 19 jaren 6939,60 dagen duren. Om de iets te lange duur van de cyclus enigszins te corrigeren liet Kalippos in 330 v.C. na 4 cycli n dag uitvallen. Voorts stemmen 235 maansomlopen niet precies overeen met 19 zonnejaren. Een maanmaand duurt 29 dagen, 12 uur en 44 minuten, dat is in decimale notatie 29,5305 dagen. 235 maansomlopen duren dus 6939,68 dagen, iets langer dan 19 zonnejaren. Het verschil is 1,48 uur, of 0,000889%.

De positie van een jaar binnen de cyclus bepaalde of het een schrikkeljaar was en hoe hij was ingedeeld. Deze positie werd vastgesteld door middel van het Gulden Getal. Dat wordt berekend door het jaartal met 1 te vermeerderen, waarna de rest bij deling door 19 wordt bepaald. Als de uitkomst 0 is wordt hij veranderd in 19. In formule luidt dit als volgt:

GuldenGetal = (Jaar MOD 19) + 1

De cyclus van Metoon is vanzelfsprekend ook in de epacta terug te vinden. Ze kunnen worden berekend als:

Epacta = (GuldenGetal * 11 - 3) MOD 30

Uit de maximale lengte van een maansomloop blijkt dat er minimaal 0 en maximaal 29 epacta kunnen zijn. Vandaar dat het resultaat modulo 30 wordt genomen. Uit het feit dat het GuldenGetal met 11 wordt vermenigvuldigd volgt dat de epacta ieder jaar met 11 modulo 30 verspringen. Dat is logisch want 11 is juist het aantal dagen dat in een normaal jaar na 12 maansomlopen van in totaal 354 dagen overblijft. Na elke 19-jarige cyclus verspringen de epacta niet met 11 maar met 12, waarmee we weer op de uitgangssituatie terug zijn.

Vanaf 1 januari is de maancyclus na steeds 59 dagen (dat is 2 maal de duur van de maancyclus van 29,5 dag) weer in dezelfde toestand. In een normaal jaar zonder schrikkeldag hebben januari en februari samen 59 dagen. Op 21 maart is de maancyclus dan in de toestand

(Epacta + 21) modulo 29 of 30

Of het modulo 29 of 30 moet zijn is afhankelijk van het precieze verloop van de maancyclus. Er wordt (zo blijkt) in dit geval gerekend met 29.

De datum van volle maan wordt berekend door 15 dagen bij die van nieuwe maan te tellen. Het getal 15 is de helft van de duur van de maancyclus van 29,5 dag, afgerond op hele dagen. Als er 23 epacta zijn geeft bovenstaande formule modulo 29 als antwoord 15. De volle maan valt dan precies op 21 maart en de zondag erna is het pasen. In geval van 24 epacta is het een dag tevoren volle maan en moet dus een lunatie worden bijgeteld. Dan valt pasen laat. De door de Katholieke kerk toegepaste paasrekening telt in geval van 24 epacta een lunatie van 29 dagen bij en in geval van 26 of meer epacta een lunatie van 30 dagen. Als er 25 epacta zijn wordt een lunatie van 29 of 30 dagen bijgeteld afhankelijk van de positie van het jaar in de lange maancyclus van 19 jaar. Dit alles om de paaslunatie "hol" te laten zijn.

Er zijn 30 mogelijke epacta in een cyclus van 19 jaar. Niet alle epacta komen dus voor. Uitwerking van de formule geeft:

Epacta  GG      Epacta  GG      Epacta  GG      Epacta  GG
   0	 3         8     1        15    18        23    16
   1	14         9    12        17    10        25     8
   3	 6        11     4        19     2        26    19
   4	17        12    15        20    13        28    11
   6	 9        14     7        22     5

In de formule is nog geen rekening gehouden met de door paus Gregorius toegevoegde zonnecorrectie en maancorrectie. De zonnecorrectie heeft betrekking op het feit dat de eeuwjaren, behalve de eeuwjaren die door 400 deelbaar zijn, geen schrikkeldag hebben:

ZonneCorrectie = -Jaartal \ 100 + Jaartal \ 400

Ieder eeuwjaar behalve elke vierde eeuwjaar worden de epacta met 1 verminderd.

De maancorrectie heeft betrekking op het verschil van 1,48 uur tussen 235 maansomlopen en 19 zonsomlopen:

MaanCorrectie = 8 * ((Jaartal + 700) \ 2500) + ((Jaartal + 700) MOD 2500) \ _
                           300  - ((Jaartal + 700) MOD 2500) \ 2400 - 2

Zeven maal worden de epacta iedere 300 jaar met 1 vermeerderd, daarna gaat er een keer 400 jaar overheen. Zo ontstaat een cyclus van 2500 jaar, waarin de epacta er 8 dagen bijkrijgen. Het gaat dus om 1 dag per gemiddeld 312.5 jaar, dat is 1 dag per 312.5 * (365/29.53) maanmaanden, en dit betekent dus een correctie van niet meer dan 0,00025889 dag per maanmaand, ofwel 0,000877%. Dat is vrijwel de afwijking van 1,48 uur in de cyclus van Metoon.

De term -2 is nodig voor calibratie. Hij heeft tot gevolg dat de maancorrectie net zoals de zonnecorrectie in het begin van onze jaartelling nul is

Uiteindelijk luidt de formule voor de epacta dus:

Epacta = (GuldenGetal * 11 - 3 + ZonneCorrectie + MaanCorrectie) MOD 30

In theorie kunnen de aldus berekende epacta negatief worden. Hiervoor wordt dan door bijtelling van de cyclusduur van 30 dagen gecorrigeerd:

Epacta = Epacta - 30 * (Epacta < 0)

Hiermee zijn de epacta gegeven. De relatieve positie van de zondagen ten opzichte van het begin van het jaar wordt gegeven door middel van de zgn. zondagletter. Het is de datum van de eerste zondag na 1 januari in een normaal jaar. Eerst wordt de dag berekend waarop 1 januari van het volgende jaar valt. Rekening houdend met schrikkeljaren elke vier jaar behalve de eeuwjaren, maar wel weer elk vierde eeuwjaar, luidt die berekening als volgt:

JaarBegin = (Jaartal + Jaartal \ 4 - Jaartal \ 100 + Jaartal \ 400) MOD 7

De dagen zijn hierbij genummerd van 0 (maandag) t/m 6 (zondag). Omdat een normaal jaar 365 dagen heeft verschuift het jaarbegin steeds 365 MOD 7 = 1 dag. Vandaar de eerste term Jaartal MOD 7. De volgende termen corrigeren voor het feit dat elke vier jaar een dag extra heeft, behalve de eeuwjaren, maar elke vierde eeuwjaar weer wel.

De zondagletter wordt dan gegeven door:

ZondagLetter = (8 - JaarBegin) MOD 7

In de 8 MOD 7 = 1 zien we weer de jaarlijkse verschuiving met 1 dag.

Bij elke mogelijke paasdatum na 21 maart, 22 maart t/m 25 april, kunnen we nu de bijbehorende zondagletter berekenen.

Gegeven de epacta is het tenslotte mogelijk de datum van de eerste volle maan op of na 21 maart te berekenen. Daarbij wordt rekening gehouden met de wens van de Katholieke kerk de paaslunatie hol (of leeg) te laten zijn. Vanaf de aldus gevonden datum kiezen we nu de eerste datum met de juiste zondagletter. Dat is dan de gezochte paasdatum.

Merk op dat noch bij de berekening van de epacta noch bij de berekening van de zondagletter expliciet rekening wordt gehouden met een mogelijke schrikkeldag.

Bij de epacta heeft dat te maken met het feit dat het verschil tussen het zonnejaar en 12 maansomlopen geen geheel aantal dagen is. Het is namelijk 10,88 dagen. Door de epacta jaarlijks met 11 dagen te laten verspringen wordt al deels met een schrikkeldag eens in de vier jaar rekening gehouden. Het feit dat de epacta eens in de 19 jaar 1 dag extra verspringen zorgt er voor dat ze op kortere termijn gesynchroniseerd blijven.

Bij de zondagletter heeft het geen zin om met een schrikkeldag rekening te houden omdat hij gebaseerd is op een berekening van de weekdag voor een datum na de eventuele schrikkeldag (1 januari van het volgende jaar) en gekoppeld wordt aan een eveneens na de eventuele schrikkeldag vallende datum. Zo blijven de potentiele paasdata en de zondagletters gesynchroniseerd.

Dit alles leidt tot de volgende functie In PowerBasic ter berekening van de paasdatum:

'********************************************************************
$COMPILE        UNIT    'Destination of compilation

DEFINT A-Z
$INCLUDE "Pasen.bi"

FUNCTION PaasZondag% (Jaartal AS INTEGER) PUBLIC
'********************************************************************
' Functie: berekent bij een voluit gegeven jaartal
'          het dagnummer van Paaszondag, gerekend vanaf 1 maart.
'********************************************************************

DIM Aantal       (-23 TO 11)    AS INTEGER
DIM PaasData     (-23 TO 11)    AS INTEGER
DIM ZondagLetters(-23 TO 11)    AS INTEGER
DIM Epacta                      AS INTEGER
DIM ExtraLunatie                AS INTEGER
DIM GuldenGetal                 AS INTEGER
DIM i                           AS INTEGER
DIM JaarBegin                   AS INTEGER
DIM MaanCorrectie               AS INTEGER
DIM MaartTelling                AS INTEGER
DIM ZondagLetter                AS INTEGER
DIM ZonneCorrectie              AS INTEGER

GuldenGetal    = (Jaartal MOD 19) + 1
MaanCorrectie  = 8 * ((Jaartal + 700) \ 2500) + ((Jaartal + 700) MOD _
                 2500) \ 300 - ((Jaartal + 700) MOD 2500) \ 2400 - 2
ZonneCorrectie = -Jaartal \ 100 + Jaartal \ 400
Epacta         = (GuldenGetal * 11 - 3 + ZonneCorrectie + _
                 MaanCorrectie) MOD 30
Epacta         = Epacta - 30 * (Epacta < 0)
JaarBegin      = (Jaartal + Jaartal \ 4 - Jaartal \ 100 + Jaartal \ _
                 400) MOD 7
ZondagLetter   = (8 - JaarBegin) MOD 7

'Mogelijke paasdata met hun ZondagLetters:
FOR i = -23 TO 11
  'PaasData volgens de maart telling. Een paasdatum van 32 bij
  'voorbeeld valt op 1 april.
  PaasData(i) = i + 45
  ZondagLetters(i) = (i + 27) MOD 7
NEXT i

SELECT CASE Epacta
  CASE <= 23
    'Bij 23 epacta valt de volle maan van de paaslunatie (indien
    'hol, dus 29 dagen lang) precies op 21 maart: 29 - 23 + 15 = 21.
    ExtraLunatie = 0
  CASE 24
    'Bij 24 of meer epacta zou de gewenste volle maan voor 21
    'maart vallen. Daarom wordt n maancyclus van 29 dan wel 30 dagen
    'bijgeteld. De keuze van 29 of 30 heeft te maken met de wens de
    'paaslunatie "hol" te laten zijn.
    ExtraLunatie = 29
  CASE 25
    IF GuldenGetal > 11 THEN
      ExtraLunatie = 29
    ELSE
      ExtraLunatie = 30
    END IF
  CASE ELSE
    ExtraLunatie = 30
END SELECT

FOR i = ExtraLunatie - Epacta TO 11
  IF ZondagLetter = ZondagLetters(i) THEN
    Aantal(i) = Aantal(i) + 1
    EXIT FOR
  END IF
NEXT i

PaasZondag% = PaasData(i)
END FUNCTION

FUNCTION PaasDatum$ (Jaartal AS INTEGER) PUBLIC
'********************************************************************
' Functie: geeft bij een voluit gegeven jaartal
'          de datum van Paaszondag, in het formaat "dd-mm-jjjj"
'********************************************************************

DIM iTemp AS INTEGER
DIM sTemp AS STRING
iTemp = PaasZondag(Jaartal)
sTemp = "00-00-" + LTRIM$(STR$(Jaartal))
MID$(sTemp, 1, 2) = RIGHT$("0" + LTRIM$(STR$((iTemp - 1) MOD 31 + 1)), 2)
MID$(sTemp, 5, 1) = LTRIM$(STR$((iTemp - 1) \ 31 + 3))
PaasDatum$ = sTemp
END FUNCTION
'-------------------------------------------------------------------------

'Pasen.bi
'*************************************************************
'* Include bij   : Pasen                                     *
'* Functie       : berekent paasdatum voor een gegeven jaar  *
'*                 volgens de voorschriften van de RK kerk   *
'* Auteur        : Hans Lunsing, Klaproos 38, 2317 EL Leiden *
'* Datum         : 22-05-1994                                *
'* Compiler      : PowerBasic 3.x                            *
'*************************************************************

DEFINT A-Z

DECLARE FUNCTION PaasDatum  (Jaartal AS INTEGER) AS STRING
DECLARE FUNCTION PaasZondag (Jaartal AS INTEGER) AS INTEGER
'**********************************************************
Met een enkele aanpassing is deze module ook geschikt voor QuickBasic, QuickBasic PDS en Visual Basic for DOS. In functie PaasZondag% vindt de eigenlijke berekening plaats. Het resultaat is het dagnummer van Paaszondag, gerekend vanaf 1 maart. De functie PaasDatum$ maakt er vervolgens een mooie te printen string van.

Heeft u vragen over bovenstaand artikel en u beschikt over e-mail dan kunt u Hans Lunsing een mailtje sturen. <jlunsing@doge.nl> of <j.lunsing@hccnet.nl>

