Files
nlnieuws/cmd/ISOWeek/ISOWeek.go
2026-03-16 13:41:03 +01:00

49 lines
628 B
Go

package main
/*
Waarom?
We willen year-week, bijvoorbeeld 2025-52
Als de datum 1 januari 2027 is, dan geeft dit:
date +%Y-%V
... dit:
2027-53
Dat is fout. Het moet zijn:
2026-53
Dit programma geeft wel de juiste uitvoer.
*/
import (
e "codeberg.org/pebbe/errors"
"fmt"
"os"
"strconv"
"time"
)
var (
x = e.ExitErr
)
func main() {
// arg 1: aantal dagen opgeteld bij huidige datum
d, err := strconv.Atoi(os.Args[1])
x(err)
location, err := time.LoadLocation("Europe/Amsterdam")
x(err)
year, week := time.Now().AddDate(0, 0, d).In(location).ISOWeek()
fmt.Printf("%d-%02d\n", year, week)
}