package main
import (
"fmt"
"time"
)
func printMonth(year int, month time.Month) {
first := time.Date(year, month, 1, 0, 0, 0, 0, time.Local)
daysInMonth := time.Date(year, month+1, 0, 0, 0, 0, 0, time.Local).Day()
monthName := first.Format("January")
fmt.Printf(" %s %d\n", monthName, year)
fmt.Println("Su Mo Tu We Th Fr Sa")
offset := int(first.Weekday()) // Sunday=0
for i := 0; i < offset; i++ {
fmt.Print(" ")
}
for day := 1; day <= daysInMonth; day++ {
fmt.Printf("%2d ", day)
if (offset+day)%7 == 0 {
fmt.Println()
}
}
fmt.Println()
}
func main() {
printMonth(2026, time.January)
}
/*
run:
January 2026
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
*/