The Easter calculation of Beda Venerabilis

Karl-Heinz Lewin

The Easter table of Beda Venerabilis begins (like that of Dionysius Exiguus) with the 19-year cycle from 532 CE:

     A 	       I          II        III       IV        V         VI               VII 	    VIII

     1          532         10        *        4       17        5. April        11. April    20
     2        1/533       4/11       11        5       18       25. März         27. März     16
     3        2/534       5/12       22        6       19       13. April        16. April    17
     4        3/535       6/13        3        7        1        2. April         8. April    20
     5        4/536       7/14       14        2        2       22. März         23. März     15
     6        5/537       8/15       25        3        3       10. April        12. April    16
     7        6/538       9/ 1        6        4        4       30. März          4. April    19
     8        7/539      10/ 2       17        5        5       18. April        24. April    20
     9        8/540      11/ 3       28        7        6        7. April         8. April    15
    10        9/541      12/ 4        9        1        7       27. März         31. März     18
    11       10/542      13/ 5       20        2        8       15. April        20. April    19
    12       11/543      14/ 6        1        3        9        4. April         5. April    15
    13       12/544      15/ 7       12        5       10       24. März         27. März     17
    14       13/545       1/ 8       23        6       11       12. April        16. April    18
    15       14/546       2/ 9        4        7       12        1. April         8. April    21
    16       15/547       3/10       15        1       13       21. März         24. März     17
    17       16/548       4/11       26        3       14        9. April        12. April    17
    18       17/549       5/12        7        4       15       29. März          4. April    20
    19       18/550       6/13       18        5       16       17. April        24. April    21

[NAB2]

A:  Cycle year in the nineteen-year cycle (not available in Bede’s table)
I:  Anni Dominicae Incarnationis - Years since the birth of Christ [DTR chsp. 47; TRT pp. 126-129]
II:  Indictiones - Indiction [DTR chsp. 49; TRT p. 130]
III:  Epactae Lunares - Lunar epacts [DTR chsp. 52; TRT p. 135]
IV:  Epactae Solis sive Concurrentes dies - Solar epacts or concurrent days [DTR chsp. 53; TRT p. 136]
V:  Cyclus Lunaris - Lunar cycle [DTR chsp. 56; TRT p. 139]
VI:  Quarta Decima Luna Paschae - Luna XIV paschalis [DTR chsp. 59; TRT p. 142]
VII:  Dies Dominicus Paschae - Easter Sunday [DTR chsp. 61; TRT p. 145]
VIII:  Luna Ipsius Diei - The moon age of Easter Sunday [DTR chsp. 62; TRT p. 147]

[NAB1; NAB2]

For the following calculation rules is defined: function mod1(a, b) { m = a mod b; return m ? m : b; }

Column I: Anni Dominicae Incarnationis = Years since the birth of Christ
The year (hereinafter: j ) is assumed to be given.

Column II: Indictiones = Indiction
Calculation: ind = mod1( j+3, 15 )
[DTR chsp. 49; TRT p. 130]

Column III: Epactae Lunares = Lunar epacts
Calculation: epalu = ((j mod 19 ) * 11 ) mod 30
[DTR chsp. 52; TRT p. 135]

Column IV: Epactae Solis sive Concurrentes dies = Solar epacts or concurrent days
Calculation: epaso = mod1( floor( j * 5 / 4 ) + 4, 7 )
[DTR chsp. 53-54; TRT pp. 136-137]

Column V: Cyclus Lunaris = Lunar cycle
Calculation: cyclu = mod1( j + 17, 19 )
Note: I use the modulus of j+17 instead of Bede’s j-2 so that the expression for the years 0 and 1 is not negative.
[DTR chsp. 56-58; TRT pp. 139-142]

Column VI: Quarta Decima Luna Paschae = Luna XIV paschalis
Calculation: qdlup = epalu <= 15 ? 36 – epalu : 66 – epalu
qdlup takes the values 21 to 50,
21 to 31 is the date in March, otherwise (lu14 – 31) is the date in April.
[DTR 59-60; TRT pp. 142-145]

Incidental remark: Up to this point, Beda had meticulously explained the calculation steps he used to arrive at his results. He no longer does so for the date of Easter Sunday [DTR ch. 61; TRT pp. 145-147] and the age of the Easter moon [DTR ch. 62; TRT p. 147]. I can therefore only assume that he adopts the calculation method of Dionysius Exiguus.

Intermediate step Weekday of the Easter moon
Calculation: wtlup = mod1( 60 + qdlup + epaso, 7 )
wtlup assumes the values 1 to 7, 1 => Sun, 2 => Mon, ..., 7 => Sat
[DE3, Argument 10]

Column VII: Dies Dominicus Paschae = Easter Sunday
Calculation: didop = qdlup + 8 - wtlup
didop assumes the values 22 to 57,
22 to 31 is the date in March, otherwise (didop – 31) is the date in April.

Column VIII: Luna ipsius diei = Moon age of this Easter Sunday
Calculation: if ( didop <= 31 ) { luipd = 8 + epalu + didop } else { luipd = 9 + epalu + didop – 31 }
luipd = mod1( luipd, 30 )
[DE3, Argument 9]

Implementation in a spreadsheet programme

(Here Microsoft Excel 2007, German licence)

Field

Contents

Meaning

A1

'ADNIC

Year number

B1

'Indic

Indiction

C1

'IS

Intermediate step

D1

'Epact lun

Lunar epacts

E1

'Epact sol

Solar epacts, that is concurrent days

F1

'Cycl Lu

Lunar cycle

G1

'Luna XIV

Luna XIV paschalis

H1

'Wd Lu XIV

Weekday of Luna XIV

I1

'Dom Pasc

Easter Sunday

J1

'Lu Dom Pasc

Moon age ES 1st step

K1

'Lu Dom Pasc

Moon age of Easter Sunday

A2

532

532

B2

=WENN(REST(A2+3;15);REST(A2+3;15);15)

C2

=REST(A2;19)*11

D2

=REST(C2;30)

E2

=WENN(REST(GANZZAHL(A2*5/4+4);7);REST(GANZZAHL(A2*5/4+4);7);7)

F2

=WENN(REST(A2+17;19);REST(A2+17;19);19)

G2

=WENN(D2<=15;36-D2;66-D2)

H2

=WENN(REST(60+G2+E2;7); REST(60+G2+E2;7); 7)

I2

=G2+8-H2

J2

=WENN(I2<=31;8+D2+I2;9+D2+I2-31)

K2

=WENN(REST(J2;30); REST(J2;30);30)

A3

=A2+1

B3:K3

Copy from B2:K2

A4:K96

Copy from A3:K3


Implementation in JavaScript

	function DaynumberToDayAndMonth( daynumber ) {
		// assert( daynumber > 0 && daynumber < 62 );
		if ( daynumber <= 31 ) {
			this.dd = daynumber;
			this.mm = 3;
		} else {
			this.dd = daynumber - 31;
			this.mm = 4;
		}
		return this;
	}
	
	function mod1( a, b ) {
		var m = a % b ;
		return m ? m : b ;
	}
	
	function BedaVenerEasterTableLine( annus ) {
		// assert( annus > 0 && annus <= 4999 );
		this.adi = annus;
		this.indic = mod1( annus + 3, 15 );
		this.epalu = (( annus % 19 ) * 11 ) % 30;
		this.epaso = mod1( floor( annus * 5 / 4 ) + 4, 7 );
		this.cyclu = mod1( annus + 17, 19 );
		this.qdlup = this.epalu <= 15 ? 36 - this.epalu : 66 - this.epalu;
		this.wtlup = mod1( 60 + this.qdlup + this.epaso, 7 );
		this.didop = this.qdlup + 8 - this.wtlup;
		var lu = this.didop <= 31 ? 8 + this.epalu + this.didop : 9 + this.epalu + this.didop - 31;
		this.luipd = mod1( lu, 30 );
		return this;
	}
	
	function BedaVenerEasterTable( annus, times, outputformatter ) {
		// assert( annus > 0 && annus <= 4996 );
		// assert( times >= 4 && times <= 532 );
		// assert( annus + times <= 5000 );
		for ( let j = annus; j < annus + times; j++ ) {
			var line = BedaVenerEasterTableLine( j );
			generateExiguusEasterTableOutput( line );
		}
	}


Formal verification of the algorithm

If you click on the button below, a new calculation of the data appears for comparison with the first 19-year section of the Easter table of Beda Venerabilis shown above, generated according to the algorithm just developed with the JavaScript functions shown, whereby in this newly calculated table the first column ("A") - the number of the year in the 19-year lunar cycle, which is not part of Bede’s original table and is insignificant for the calculation - is omitted.
An Easter calculator with this algorithm, where you can choose the start year, the number of years and the output format, can be found at The Easter table of Beda Venerabilis as a table calculator.



Literatur

DE3 = Dionysius Exiguus (525): Argumenta Paschalia Aegyptiorum; <https://web.archive.org/web/20221014111543/http://www.nabkal.de/osterstreit/anhang/dionysius_3.html> see also DELP, DEOE

DELP = Dionysius Exiguus (2003): Liber de Paschate; <http://henk-reints.nl/cal/audette/denys.html>

DEOE = Dionysius Exiguus (2003): On Easter, or, the Paschal Cycle; <https://www.tertullian.org/fathers/dionysius_exiguus_easter_01.htm>

DTR = Beda Venerabilis: De Temporum Ratione; <https://web.archive.org/web/20221208193930/http://www.nabkal.de/beda.html>

NAB1 = Die Ostertabelle des Beda Venerabilis; <https://web.archive.org/web/20220526230407/http://www.nabkal.de/ostrechbeda.html>

NAB2 = Die Ostertafel des Beda Venerabilis (nach der Tabelle des Dionysius Exiguus); <https://web.archive.org/web/20220928225838/http://www.nabkal.de/osterstreit/anhang/zyklbeda.html>

TRT = Faith Wallis (1999): Bede: The Reckoning of Time; Translated Texts for Historians, Volume 29; Liverpool University Press


The author is a mathematician and worked as a software developer.

Karl-Heinz Lewin, Haar: karl-heinz.lewin@t-online.de

Copyright © Karl-Heinz Lewin, 2024