golangで2つの日付間の月数を取得する
関連:Python2で2つの日付間の月数を取得する - brainstorm
goでも書いてみた。
Duration使ってもできそう
package main import ( "fmt" "time" ) // get months between two dates. func MonthDiff(d1, d2 time.Time) int { if d2.After(d1) { d1, d2 = d2, d1 } return (d1.Year()-d2.Year())*12 + int(d1.Month()) - int(d2.Month()) } func main() { d1 := time.Date(2013, 12, 1, 0, 0, 0, 0, time.UTC) d2 := time.Date(2014, 3, 1, 0, 0, 0, 0, time.UTC) fmt.Println(MonthDiff(d1, d2)) }