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))
}