aboutsummaryrefslogtreecommitdiff
path: root/internal/calendar/temporal_ef.go
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-18 16:49:03 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-18 16:49:03 +0200
commit74d557580e747cf309b8217d34ab6b9336939fca (patch)
tree629af99823238d7cf0edb90719d85883ae397114 /internal/calendar/temporal_ef.go
parenta974243ff2a309dc9b4fe1632ddd5fbde6a526b0 (diff)
downloadlectio-74d557580e747cf309b8217d34ab6b9336939fca.tar.gz
lectio-74d557580e747cf309b8217d34ab6b9336939fca.zip
fix(ef): Passion week and Holy Week are two weeks, not one
efWeek had no Passiontide case, so both weeks fell through to 0 and every day of Holy Week took the slug of its Passion-week namesake: ef-passiontide-0- monday served both Passion Monday and Holy Monday. The two weeks therefore shared one set of readings and Holy Week could not have its own -- Good Friday was reading Passion Friday's Mass. Numbered from Passion Sunday now, so the weeks are 1 and 2 and the slugs distinguish them. The six ef-passiontide-0-* sections are replaced by colitur's twelve rather than renamed, and the reason is worth recording: they were not simply Passion week's Masses. The Tuesday section carried HOLY Tuesday's (Jer 11:18-20 with the Passion according to Mark), which was Passion Tuesday's only by the same collision -- colitur documents that specific mix-up and its own correction of it. Renaming 0 to 1 would have kept the wrong Mass on Passion Tuesday while looking like a clean migration. All twelve are colitur's, verified there against both photographic scans. All six days of Holy Week now match colitur, and so does Passion Tuesday.
Diffstat (limited to 'internal/calendar/temporal_ef.go')
-rw-r--r--internal/calendar/temporal_ef.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/internal/calendar/temporal_ef.go b/internal/calendar/temporal_ef.go
index a043179..6828f35 100644
--- a/internal/calendar/temporal_ef.go
+++ b/internal/calendar/temporal_ef.go
@@ -422,6 +422,15 @@ func efWeek(date time.Time, season Season, y int, easter time.Time) int {
// its ferias. Epiphany itself is a feast inside Christmas Time (RG 72),
// not the head of a numbered week.
return daysBetween(firstSundayAfterEpiphany(y), date)/7 + 1
+ case Passiontide:
+ // Passiontide is TWO weeks and they are not interchangeable: Passion
+ // week (from Passion Sunday, Easter-14) and Holy Week (from Palm
+ // Sunday, Easter-7) have entirely different Masses. Numbering them
+ // both 0 -- which is what falling through to the default did -- gave
+ // every day of Holy Week the slug of its Passion-week namesake, so the
+ // two weeks shared one set of readings and Holy Week could not have
+ // its own.
+ return daysBetween(easter.AddDate(0, 0, -14), date)/7 + 1
case Septuagesima:
return daysBetween(easter.AddDate(0, 0, -63), date)/7 + 1
case Easter_: