feat: leap-year bissextile placement (St Matthias 24→25 Feb) (#333) #345
No reviewers
Labels
No labels
area: build
area: ci
area: compare
area: data
area: engine
area: model
area: provenance
area: rite
area: validation
backport
blocked
breaking
confirmed
dependencies
duplicate
epic
github_actions
invalid
needs-info
needs-triage
php
priority: high
priority: low
priority: medium
regression
type: bug
type: chore
type: correction
type: docs
type: enhancement
type: feature
type: fix
type: perf
type: refactor
type: security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Directorium/Core!345
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/333-bissextile"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #333. Epic #23, issue 6/6 — completes the sanctoral overlay.
What
In a leap year the traditional calendar doubles the sexto Kalendas Martii
(civil 24 February), so every feast on 24–28 February is kept one day later:
24 February itself becomes the bis-sextus feria.
SanctoralCalendarappliesthis from the date alone (
month 2, day 24–28in a leap year) — no per-entryflag.
Correctness
The rule and its two named consequences (Matthias→25, Gabriel→28) were verified
in the design pass against the 1962 rubric text. A 1583–2200 invariant sweep
proves the shift never collides (exactly one office per realized date) and that
St Matthias lands on its leap-dependent day every year.
Verification
composer lint·composer analyse(PHPStan L6, no errors) ·composer test(395 tests, 30,196 assertions — +5 tests, ~13.6k sweep assertions). Signed + DCO.