Вот верный вариант
package main
import (
"fmt"
"time"
)
func main() {
date := time.Date(2020, 1, 1, 12, 0, 0, 0, time.UTC)
var days int = 32
var start int = 0
for s := start; s < days; s++ {
res := date.Add(time.Duration(s) * time.Hour * 24)
format := res.Format("2006-01-02")
fmt.Println(format)
}
}
https://play.golang.org/p/Iv0DvH4OSw4
Не понимаю зачем использовать ссылку и конвертировать длительность в длительность.
Так же вы не совсем понимаете что такое time.Duration.
time.Duration - это хоть и алиас int64, но он имеет другой смысл, а именно, содержит
длительность в наносекундах.
Так же я бы убрал объявление типов, они тут излишнее, то есть, переменные можно объявить как:
var days int = 32
var start int = 0
так и
days := 32
start := 0
и в большинстве случаев, вы увидите второй вариант, но есть НО, а именно, в переменные с значением по умолчанию обычно не присваивают значение, если нет сути и пишут `var start int`, (в вашем примере она есть, поэтому уместно объявить как `start := 0`)