| 123456789101112131415161718192021222324252627282930313233343536373839 |
- package chis
- import (
- "fmt"
- "time"
- "gbase/glog"
- )
- func GetAgeFromIdCard(idCard string) (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 += 1
- } else if lastDayOfYear.Month() == birthday.Month() && lastDayOfYear.Day() > birthday.Day() {
- age += 1
- } else {
- age += 0
- }
- return age
- }
|