package IdCardUtil import ( "github.com/bluesky335/IDCheck/IdNumber" "strconv" "time" ) // Check IdCard number valid. func IsValidIdCardNo(IdCardNo *[]byte) bool { var id = IdNumber.New(string(*IdCardNo)) return id.IsValid() } // Get information from IdCard number. Birthday, gender, province mask. func GetIdCardNoInfo(idCard string) (isValid bool, birthday string, xbm string) { IdCardNo := []byte(idCard) xbm = "1" if !IsValidIdCardNo(&IdCardNo) { isValid = false return } isValid = true // Birthday information. nYear, _ := strconv.Atoi(string(IdCardNo[6:10])) nMonth, _ := strconv.Atoi(string(IdCardNo[10:12])) nDay, _ := strconv.Atoi(string(IdCardNo[12:14])) birthdayUnix := time.Date(nYear, time.Month(nMonth), nDay, 0, 0, 0, 0, time.Local).Unix() //将Unix时间转为时间字符串 timeTemplate := "2006-01-02 15:04:05" birthday = time.Unix(birthdayUnix, 0).Format(timeTemplate) // Gender information. genderMask, _ := strconv.Atoi(string(IdCardNo[16])) if genderMask%2 == 0 { xbm = "2" } else { xbm = "1" } return }