aboutsummaryrefslogtreecommitdiff
path: root/lib/rites/rite_ef/temporal_ef.mli
blob: ddfcac2e7bebb9e25eb43e236a278f7c90f9e548 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
(** The EF (1962) temporal cycle, per Rubricae Generales 71-77 and 91. *)

open Colitur_kernel

(** RG 71: Advent I Sunday of the Advent opening in civil year [y]. *)
val advent_start : int -> Date.t

(** First day of the liturgical year opening in civil year [y]. Same as
    {!advent_start}. *)
val year_start : int -> Date.t

val season : Date.t -> Vocab_ef.season

(** Last Sunday of October, per the 1960 calendar. *)
val christ_the_king : int -> Date.t

(** The named temporal days: I-class feasts of the Lord, vigils, and days within
    the Octave of the Nativity. Returns (season, slug, colour, rank, week). *)
val named :
  Date.t -> (Vocab_ef.season * string * Colour.t * Vocab_ef.rank * int option) option

(** The Sunday on which week 1 of a season begins, in civil year [y]. [None] for
    [Christmastide], which has no numbered weeks. *)
val week_origin : Vocab_ef.season -> int -> Date.t option

(** Week within the season. Sunday-aligned, so it is constant Sunday-to-Saturday.
    The origin is season-specific: time after Pentecost counts from Pentecost,
    time after Epiphany from the first Sunday after Epiphany. *)
val week : Date.t -> int option

(** The lectionary key for a Sunday, or [None] if [d] is not a Sunday. *)
val sunday_slug : Date.t -> string option

val id : string

(** Total over 1583..9999: every date yields exactly one temporal identity. *)
val temporal : Date.t -> (Vocab_ef.season, Vocab_ef.rank) Temporal.t