summaryrefslogtreecommitdiff
path: root/lib/rites/rite_of/temporal_of.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rites/rite_of/temporal_of.ml')
-rw-r--r--lib/rites/rite_of/temporal_of.ml28
1 files changed, 27 insertions, 1 deletions
diff --git a/lib/rites/rite_of/temporal_of.ml b/lib/rites/rite_of/temporal_of.ml
index 9aa898e..e375350 100644
--- a/lib/rites/rite_of/temporal_of.ml
+++ b/lib/rites/rite_of/temporal_of.ml
@@ -238,7 +238,33 @@ let named d =
let easter = Computus.gregorian_easter y in
let off n = Date.add_days easter n in
let m = Date.month d and dd = Date.day d in
- if m = 12 && dd = 24 then Some (Advent, "of-nativity-vigil", Colour.White, Sollemnitas)
+ if m = 12 && dd = 24 && Date.weekday d <> Date.Sun then
+ Some (Advent, "of-nativity-vigil", Colour.White, Sollemnitas)
+ (* NOT unconditional. Tabula I.2 ("Dominicae Adventus, Quadragesimae et
+ Paschae") outranks Tabula I.3 (solemnities generally, where the Vigil
+ Mass of the Nativity itself bands, per Precedence_of.band's own entry-3
+ branch) -- Normae n. 5 states it directly for exactly this class of
+ day: a Sunday of Advent/Lent/Easter yields to nothing but a still
+ higher-banked day. The Fourth Sunday of Advent is one of those
+ privileged Sundays every time 24 December falls on one.
+
+ The Vigil Mass is an evening Mass of the FOLLOWING solemnity (the
+ Nativity, 25 December), not an office belonging to 24 December's own
+ civil day -- the identical granularity reasoning
+ Precedence_of.band's own entry-1 comment already applies to Holy
+ Thursday (the Triduum opens with an evening Mass inside Holy
+ Thursday's civil day, so the day itself stays at entry 2, not entry
+ 1) and that data/of/expected-divergences-litcal.sexp's L1 entry
+ applies on the season axis. At colitur's one-office-per-civil-day
+ granularity, only one identity can hold 24 December, and on a Sunday
+ that identity is the Fourth Sunday of Advent, not the Vigil -- so
+ [named] must return [None] here and let [temporal]'s dispatch fall
+ through to [sunday_slug], exactly as it already does for every other
+ Sunday [named] does not claim.
+
+ Every non-Sunday 24 December is unaffected: the Vigil still wins
+ there, as a plain late-Advent feria (Tabula II.9) is never privileged
+ against it. *)
else if m = 12 && dd = 25 then Some (Christmas, "of-nativity", Colour.White, Sollemnitas)
else if m = 1 && dd = 1 then Some (Christmas, "of-mary-mother-of-god", Colour.White, Sollemnitas)
else if m = 1 && dd = 6 then Some (Christmas, "of-epiphany", Colour.White, Sollemnitas)