Add the Circumcision of Our Lord (Jan 1) as a proper temporal feast
Jan 1 previously fell through to generic Christmastide-feria content with no identity of its own, despite being Christmas's own Octave Day. Adds a `fixed-date` anchor kind to calendar/movable-feasts.ts's MovableAnchor (the existing easter/nth-sunday kinds can't express "always Jan 1"), plus the feast's collect, Magnificat/Benedictus antiphons, full Lauds psalmody, capitulum, versicle, and two Matins nocturn readings (Leo the Great, Ambrose), sourced from Sancti/01-01.txt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014axryJBrRswYh2niA7WCUc
This commit is contained in:
@@ -51,6 +51,8 @@ function dateForAnchor(year: number, anchor: MovableAnchor): string {
|
||||
}
|
||||
case 'nth-sunday-of-advent':
|
||||
return addDays(adventStart(year), 7 * (anchor.nth - 1));
|
||||
case 'fixed-date':
|
||||
return toIsoDate({ year, month: anchor.month, day: anchor.day });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,8 @@ import { easterOffsetOf } from './temporal';
|
||||
export type MovableAnchor =
|
||||
| { kind: 'easter'; offset: number }
|
||||
| { kind: 'nth-sunday-of-month'; month: number; nth: number } // nth: 1-4, or -1 for "last"
|
||||
| { kind: 'nth-sunday-of-advent'; nth: number }; // nth: 1-4 (Advent always has exactly 4 Sundays)
|
||||
| { kind: 'nth-sunday-of-advent'; nth: number } // nth: 1-4 (Advent always has exactly 4 Sundays)
|
||||
| { kind: 'fixed-date'; month: number; day: number }; // a plain civil-calendar date, not itself Easter- or Advent-anchored (e.g. the Circumcision, Jan 1)
|
||||
|
||||
export interface TemporalFeastRecord {
|
||||
id: string;
|
||||
|
||||
Reference in New Issue
Block a user