よく使用される (今日の日付 - 誕生日) / 10000 で年齢を求める方法
func calcAge(t time.Time) (int, error) {
// 現在日時を数値のみでフォーマット (YYYYMMDD)
dateFormatOnlyNumber := "20060102" // YYYYMMDD
now := time.Now().Format(dateFormatOnlyNumber)
birthday := t.Format(dateFormatOnlyNumber)
// 日付文字列をそのまま数値化
nowInt, err := strconv.Atoi(now)
if err != nil {
return 0, err
}
birthdayInt, err := strconv.Atoi(birthday)
if err != nil {
return 0, err
}
// (今日の日付 - 誕生日) / 10000 = 年齢
age := (nowInt - birthdayInt) / 10000
return age, nil
}
環境によっては、intで返すのではなく、 null.Int を返すようにするのも良いかと思います
(DBから取得した誕生日の値がない場合はnullで返すなど)