找回密码
 加入
搜索
查看: 2350|回复: 1

[系统综合] 如何获取电子表格单元中身份证号码中的出生日期

[复制链接]
发表于 2012-3-23 21:20:42 | 显示全部楼层 |阅读模式
我学校有很多学生的信息要填,其中有一项是“出生日期”,可我们以前输入的是身份证号码,如何用AU3把这些身份证号码中的出生日期提取出来
发表于 2012-3-23 22:11:56 | 显示全部楼层
本帖最后由 zch11230 于 2012-3-23 22:46 编辑

反正身份证号码中的数字都是18位 而且生日都是从第7位开始

$str = "34052419800101001X"
$Bday = StringRegExp($str, '\d{6}(\d{4})(\d{2})(\d{2})\d+', 3)

If StringRight($str, 1) = _checkCode(StringLeft($str, 17)) Then
        MsgBox(0, "出生年月日为:", $Bday[0] & "年" & $Bday[1] & "月" & $Bday[2] & "日")
Else
        MsgBox (0,"提示","身份证号码有误,请检查")
EndIf

Func _checkCode($no17) ;no17是身份证号前17位.
        $wi = "7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2"
        $wiarr = StringSplit($wi, " ")
        $no17arr = StringSplit($no17, '')
        Dim $sum, $a
        $sum = 0
        For $a = 1 To 17
                $sum += $wiarr[$a] * $no17arr[$a]
        Next
        $mod = Mod($sum, 11)
        Dim $checkxy[11] = ['1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2']
        Return $checkxy[$mod]
EndFunc   ;==>_checkCode


搜的论坛资料 发在这里当给自己备个份
如果是手输入的身份证号码 还可以先判断号码是否合法再进行操作  对excel的操作我还没有接触  有空了解一下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-3 13:14 , Processed in 0.074008 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表