package chis import ( "fmt" "time" "gbase/glog" ) func GetAgeFromIdCard(idCard string, increment int) (age int) { age = 0 if len(idCard) != 18 { return age } birthdayStr := idCard[6:14] // 解析出生日期 birthday, err := time.Parse("20060102", birthdayStr) if err != nil { glog.XWarning(fmt.Sprint("time.Parse error : %v\n", err)) return } // 计算年龄,几年 today := time.Now() age = today.Year() - birthday.Year() firstDayOfNextYear := time.Date(today.Year()+1, 1, 1, 0, 0, 0, 0, time.UTC) lastDayOfYear := firstDayOfNextYear.AddDate(0, 0, -1) if lastDayOfYear.Month() > birthday.Month() { age += increment } else if lastDayOfYear.Month() == birthday.Month() && lastDayOfYear.Day() > birthday.Day() { age += increment } else { age += 0 } return age }