aboutsummaryrefslogtreecommitdiff
path: root/internal/calendar/temporal.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/calendar/temporal.go')
-rw-r--r--internal/calendar/temporal.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/internal/calendar/temporal.go b/internal/calendar/temporal.go
index 13f1385..ab1a742 100644
--- a/internal/calendar/temporal.go
+++ b/internal/calendar/temporal.go
@@ -231,8 +231,13 @@ func temporal(date time.Time, sel Selection) temporalDay {
if date.Before(ashWed) {
week = daysBetween(baptismThis, date)/7 + 1
} else {
- // count back from Christ the King = the 34th week.
- week = 34 - daysBetween(date, christTheKing)/7
+ // Span 2 resumes after Pentecost; Sundays are numbered backward from
+ // Christ the King (the 34th and last Sunday). A weekday takes the number
+ // of its preceding Sunday, so count from that Sunday, not from the
+ // weekday itself (which would round toward Christ the King and land a
+ // week too high — the OT ferial off-by-one).
+ precedingSunday := date.AddDate(0, 0, -int(date.Weekday()))
+ week = 34 - daysBetween(precedingSunday, christTheKing)/7
}
if week < 1 {
week = 1