Een eeuwigdurende kalender (Latijn: calendarium perpetuum) is een tabel of verzameling tabellen waarmee men in ieder geval de weekdag kan bestemmen van alle data binnen een bepaald kalendersysteem. Het primaire doel is om de weekdag te bepalen van alle data in het verleden, heden en de toekomst. De proleptische gregoriaanse kalender extrapoleert de gregoriaanse kalender naar het oneindige verleden en de oneindige toekomst. Deze kan eenvoudig worden gereduceerd tot de kalender voor een periode van 400 jaar. Evenzo kan de Juliaanse kalender (plus eventuele extrapolatie naar verder verleden en naar de toekomst) gereduceerd worden tot een kalender voor een periode van 28 jaar.
Geschiedenis Vanaf de Middeleeuwen tot ongeveer de jaren dertig van de twintigste eeuw waren kalenders zo kostbaar dat veel mensen slechts wilden investeren in een eeuwigdurende kalender. Kalenders bleven geruime tijd na de uitvinding van de boekdrukkunst duur, omdat het zetten van tabellen hoge eisen stelt aan de expertise van de drukker. Van zo’n kalender verwachtte men in de eerste plaats overzicht. De eeuwigdurende kalenders die in agenda’s worden afgedrukt zijn functioneel in het bestemmen van een enkele datum in het verre verleden of de verre toekomst, maar voor het alledaagse gebruik zijn ze minder geschikt. Overigens zijn deze pas uitgevonden in het begin van de twintigste eeuw.
Een eeuwigdurende kalender die de Gregoriaanse kalender volgt, herhaalt zichzelf elke 400 jaar, aangezien 303 gewone jaren en 97 schrikkeljaren samen optellen tot 146.097 dagen, wat precies 20.871 weken zijn.
Bepaling met behulp van zondagsletters De hieronder staande tabel is ‘modern’ in de zin dat de dagen zijn gegeven in rijtjes van zeven, in plaats van een doorlopende lijst per maand. (Vanaf het eind van de 19de eeuw). Zij is ‘traditioneel’ in de zin dat ze gebruikmaakt van de zondagsletters. Om er gebruik van te kunnen maken moet men eerst de zondagsletter van het jaar weten of opzoeken, bijvoorbeeld in een zondagsletterstabel. De zondagsletter geeft aan welke van de zeven letters A tot en met G opgevat dient te worden als een zondag.
Voorbeeld in een gewoon jaar Op welke weekdag valt 6 juni 2007 ?
De zondagsletter van 2007 is G. Daarmee zijn alle dagen van 2007 die op een G-regel staan zondagen. Daarmee worden in dat jaar alle A-dagen maandagen, alle B-dagen dinsdagen, en alle C-dagen woensdagen. We zien dat 6 juni op een C-regel staat. Het antwoord is dus woensdag.
Voorbeeld in een schrikkeljaar Op welke weekdag valt 28 februari 2008 ?
De zondagsletter van 2008 is FE. Omdat ‘de zondagsletter’ uit twee letters bestaat weten we meteen dat 2008 een schrikkeljaar is — als we dat nog niet wisten. Voor de maanden januari en februari maken we gebruik van de eerste letter, voor alle overige maanden van de tweede letter.
Voor 28 februari maken we dus gebruik van de eerste letter, de F. F staat voor zondag, G voor maandag, A voor dinsdag, B voor woensdag, C voor donderdag. 28 februari staat op een C-regel, het antwoord is dus donderdag.
Voorbeeld Op welke weekdag valt 1 maart 2008 ?
Zondagsletter van 2008 is FE, voor maart gebruiken we de tweede letter, de E. De E is een zondag, dan is de voorafgaande dag, de D, een zaterdag.
In 2008 wordt donderdag 28 februari gevolgd door de schrikkeldag vrijdag 29 februari, die gevolgd wordt door zaterdag 1 maart.
Hulptabel In plaats van maximaal drie dagen voor- of achteruit te tellen kan men ook gebruikmaken van de hulptabel, onderaan.
ZLJanuariFebruariMaartZLA1815222951219265121926AB2916233061320276132027BC31017243171421287142128CD41118251815222918152229DE512192629162329162330EF61320273101724310172431FG714212841118254111825GAprilMeiJuniA2916233071421284111825AB3101724181522295121926BC4111825291623306132027CD51219263101724317142128DE6132027411182518152229EF7142128512192629162330FG1815222961320273101724GJuliAugustusSeptemberA2916233061320273101724AB31017243171421284111825BC4111825181522295121926CD5121926291623306132027DE61320273101724317142128EF7142128411182518152229FG18152229512192629162330GOktoberNovemberDecemberA181522295121926310172431AB2916233061320274111825BC31017243171421285121926CD4111825181522296132027DE5121926291623307142128EF6132027310172418152229FG7142128411182529162330G
Hulptabel zondagABCDEFGmaandagBCDEFGAdinsdagCDEFGABwoensdagDEFGABCdonderdagEFGABCDvrijdagFGABCDEzaterdagGABCDEF
De constructie van beide tabellen is eenvoudig. Voor de eigenlijke kalender noteert men alle dagen van een gewoon jaar, en nummert deze cyclisch van A tot en met G. Tot slot voegt men de 29ste februari toe. De hulptabel ontstaat door zowel horizontaal als verticaal cyclisch te nummeren van A tot en met G.
Bepaling met behulp van formules Schrikkeljaarbepaling Het bestaan van schrikkeljaren maakt de juiste bepaling ingewikkelder. Jaartallen die deelbaar zijn door 4 zijn doorgaans een schrikkeljaar, uitzondering hierop zijn de eeuwtallen die deelbaar zijn door 100, maar niet door 400. Voorbeeld: 2004 was een schrikkeljaar, 2000 ook, 1900 niet, 1700 niet, 1600 wel. Bij het vaststellen van onze huidige kalender (anno 1582) wist men al dat 365 dagen in een jaar een tekort van 1 dag in de 4 jaar zou opleveren, op grond hiervan is veel langer geleden al de schrikkeldag ingesteld. Men wist ook dat wanneer dit consequent zou worden toegepast er een overschot van 3 dagen in de 400 jaar zou zijn. Toen ging men rekenen en werd bovengenoemde regel van de eeuwtallen ingesteld.
Onderstaande formules zijn 100% nauwkeurig voor alle data vanaf 15 oktober 1582. Ze gaan vergezeld van uitleg en kunnen worden toegepast in rekenkundige omgevingen zoals Excel, JavaScript of PHP. Ze maken gebruik van variabelen, dat zijn locaties voorzien van een naam om gegevens in op te slaan.
De formules Nr Uitleg Formule 1 bepaalt of WJ een schrikkeljaar isJa : UK01 = 1Nee : UK01 = 0 ALS MODULUS(WJ, 4) > 0 DAN UK01 = 0 ANDERS ALS MODULUS(WJ, 100) > 0 DAN UK01 = 1 ANDERS ALS MODULUS(WJ, 400) > 0 DAN UK01 = 0 ANDERS UK01 = 1 2 bepaalt het dichtstbijzijnde jaartal in de geschiedenisdat deelbaar is door 400 (incl. huidig jaartal) UK02 = GEHEEL(WJ / 400) * 400 3 t/m 6bepaalt vanaf UK02 (incl) tot aan WJ (excl) 3 hoeveel jaren er zijn UK03 = WJ - UK02 4 hoeveel dagen er zijn (excl. schrikkeldagen) UK04 = UK03 * 365 5 hoeveel schrikkeldagen er zijn (incl. eeuwgetallen) UK05 = GEHEEL((UK03 + 3) / 4) 6 hoeveel niet-schrikkel eeuwgetallen er zijn UK06 = GEHEEL((UK03 - 1) / 100) 7 bepaalt het aantal dagen in de voorbije maandenvan het jaar met de waarde uit WJ (excl. schrikkeldagen) UK07 = VOORBIJ[WM] 8 bepaalt of in WJ schrikkeldag al voorbij isJa : UK08 = 1Nee : UK08 = 0 ALS (WM IS 1 OF WM IS 2) DAN UK08 = 0 ANDERS UK08 = UK01 9 bepaalt het aantal dagen vanaf 1 januari van het jaarmet de waarde uit UK02 tot en met de wensdatum UK09 = UK04 + UK05 - UK06 + UK07 + UK08 + WD 10 bepaalt de weekdag van de wensdatum UK10 = WEEKDAG[MODULUS(UK09 + 4, 7) + 1]
Legenda variabelen Variabele Uitleg Waarde WD Dag van de maand van de wensdatum WM Maand van de wensdatum (getal) WJ Jaar van de wensdatum (getal van 4 cijfers) UKNR Bevat resultaat van een formule,heeft bij iedere formule een ander volgnummer VOORBIJ Tabel (array) met dagen van maanden die voorbij zijn(zie formule 7)VOORBIJ=0 VOORBIJ=31 VOORBIJ=59 VOORBIJ=90 VOORBIJ=120 VOORBIJ=151VOORBIJ=181 VOORBIJ=212 VOORBIJ=243 VOORBIJ=273 VOORBIJ=304 VOORBIJ=334 WEEKDAG Tabel (array) met weekdagnamen(zie formule 10)WEEKDAG=Maandag WEEKDAG=Dinsdag WEEKDAG=Woensdag WEEKDAG=DonderdagWEEKDAG=Vrijdag WEEKDAG=Zaterdag WEEKDAG=Zondag
Legenda functies Functie Uitleg MODULUS Geeft de restwaarde van een deling als geheel getal. Voorbeelden: MODULUS(13, 7) = 6 MODULUS(26, 7) = 5 GEHEEL Geeft de waarde van het getal zonder breukwaarde. Voorbeelden: GEHEEL(13 / 7) = 1 GEHEEL(26 / 7) = 3
Externe links Eeuwigdurende kalender - uitgebreid (zoek naar de weekdag of naar jaren waarin een datum op een bepaalde weekdag viel) Eeuwigdurende kalender (bepaal de weekdag in de juliaanse of in de gregoriaanse kalender) Toon voor een reeks opeenvolgende jaren de weekdag van een bepaalde datum
Zie ook Zondagsletter Diverse kalendertypen NEN 2772 Weeknummer
Categorie:Kalender