aboutsummaryrefslogtreecommitdiff
path: root/lib/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel')
-rw-r--r--lib/kernel/computus.ml7
-rw-r--r--lib/kernel/computus.mli10
2 files changed, 17 insertions, 0 deletions
diff --git a/lib/kernel/computus.ml b/lib/kernel/computus.ml
index 1f60fb7..ba803d2 100644
--- a/lib/kernel/computus.ml
+++ b/lib/kernel/computus.ml
@@ -18,6 +18,13 @@ let gregorian_easter y =
let day = ((h + l - (7 * m) + 114) mod 31) + 1 in
mk y month day
+let anchor y offset = Date.add_days (gregorian_easter y) offset
+let ash_wednesday y = anchor y (-46)
+let palm_sunday y = anchor y (-7)
+let ascension y = anchor y 39
+let pentecost y = anchor y 49
+let corpus_christi y = anchor y 60
+
(* Meeus Julian Easter: gives the JULIAN-calendar month/day; convert to the same
physical day expressed in the proleptic Gregorian calendar by adding the
Julian->Gregorian offset (days = y/100 - y/400 - 2). *)
diff --git a/lib/kernel/computus.mli b/lib/kernel/computus.mli
index dc8f215..0e227dc 100644
--- a/lib/kernel/computus.mli
+++ b/lib/kernel/computus.mli
@@ -4,6 +4,16 @@
(** Easter Sunday by the Gregorian reckoning (OF + EF). *)
val gregorian_easter : int -> Date.t
+(** Easter-relative movable-feast anchors (register section 0), Gregorian
+ reckoning: Ash Wednesday = Easter-46 (Wed), Palm Sunday = Easter-7,
+ Ascension = Easter+39 (Thu), Pentecost = Easter+49, Corpus Christi =
+ Easter+60 (Thu, EF). *)
+val ash_wednesday : int -> Date.t
+val palm_sunday : int -> Date.t
+val ascension : int -> Date.t
+val pentecost : int -> Date.t
+val corpus_christi : int -> Date.t
+
(** Easter Sunday by the Julian reckoning, returned as the equivalent proleptic
Gregorian date (for future eastern rites; EF/OF use {!gregorian_easter}). *)
val julian_easter : int -> Date.t