golang 前の月の求め方

1.月を現在から相対的に指定する
月の指定:time.Month(month-i)
年は、自動で処理される

2.code

 
months := 5;
t := time.Now()
year := t.Year()
month:= int(t.Month())
day := t.Day()


for i := 0; i < months; i++ {
   _time := time.Date(year, time.Month(month-i), day, 0, 0, 0, 0, time.Local)
   fmt.Printf("_time\t: %v\n", _time)
}

3.結果

# date
Wed Jan  5 13:54:31 JST 2022
# ./a.out
_time   : 2022-01-05 00:00:00 +0900 JST
_time   : 2021-12-05 00:00:00 +0900 JST
_time   : 2021-11-05 00:00:00 +0900 JST
_time   : 2021-10-05 00:00:00 +0900 JST
_time   : 2021-09-05 00:00:00 +0900 JST

4.時刻地域指定

local, _ := time.LoadLocation("Asia/Tokyo")
_time := time.Date(year, time.Month(month-i), day, 0, 0, 0, 0, local)