以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]身份证提取年龄 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98502) |
-- 作者:jick0526 -- 发布时间:2017/3/30 20:16:00 -- [求助]身份证提取年龄 If e.DataRow.isnull("身份证号") = Nothing Then Dim d As Date = ReadBirthDay(e.DataRow("身份证号")) e.DataRow("年龄") = Date.Today.year - d.year Else e.DataRow("年龄") = Nothing End If 老师,请问下,如果身份证假如是5610276732这组号码,前六个数字代表年月日,就是1956年,10月27日,19没写出来,这种情况下该 怎么提取年龄。上面的代码只能正规的身份证号才能正确提取年龄。
|
-- 作者:有点色 -- 发布时间:2017/3/30 20:35:00 -- Dim str As String = "5610276732" If str.length >= 6 Then Dim d As Date = new Date(1900+str.SubString(0,2), str.SubString(2,2), str.SubString(4,2)) msgbox(d) End If |
-- 作者:jick0526 -- 发布时间:2017/3/30 21:16:00 -- 老师,上面的代码该怎么用,我是想A列输入类似5610276732的10位数,B列会自动输入年龄 |
-- 作者:有点色 -- 发布时间:2017/3/30 22:10:00 -- Dim str As String = e.DataRow("身份证号")
If str.length >= 6 Then Dim d As Date = new Date(1900+str.SubString(0,2), str.SubString(2,2), str.SubString(4,2)) e.DataRow("年龄") = Date.Today.year - d.year Else
e.DataRow("年龄") = Nothing
End If |