This commit is contained in:
Peter Kleiweg
2026-06-19 12:59:45 +02:00
parent e0550197e3
commit 8289072a52
7 changed files with 355 additions and 1 deletions

30
internal/week/week.go Normal file
View File

@@ -0,0 +1,30 @@
package week
import (
"fmt"
"time"
)
// returns first date of week
func WeekDate(year, week int) (time.Time, error) {
// 1 januari
t := time.Date(year, 1, 1, 12, 0, 0, 0, time.UTC)
// zoek eerste donderdag
day := int(t.Weekday()) // 0 = zondag
donderdag := 4 - day
if donderdag < 0 {
donderdag = donderdag + 7
}
// schuif naar maandag voor eerste donderdag: donderdag - 3
// in de gewenste week: 7 * (week - 1)
t = t.AddDate(0, 0, donderdag-3+7*(week-1))
y, w := t.ISOWeek()
if y != year || w != week {
return t, fmt.Errorf("week number out of range")
}
return t, nil
}