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 }