999宝藏网

 找回密码
 

QQ登录

只需一步,快速开始

  • 15阅读
  • 0回复

[[Windows]] 【身份证号码校验工具】

[复制链接]

7002

主题

8202

帖子

3万

积分

宝藏院长

Rank: 16Rank: 16Rank: 16Rank: 16

帖子
8202
金币
23203
威望
88
积分
32026
股份
770
热心值
476
宝藏币
26

最佳新人活跃会员灌水天才新人进步宝藏新人进步勋章

发表于 2019-12-30 18:14:00 | 显示全部楼层 |阅读模式
  
身份证号码校验工具-VB编译
一、前言   
最近在学习VB,主要目的是为了提高办公效率,最近学习到了数据库和网络接口,做了一个身份证号码校验工具,本着大家一起学习的原则的原则,上来发给大家参考下,如有错误的地方请指正,
工具主要功能如下:
  • 身份证号码校验,利用公式识别出身份证号码是否正确;
  • 识别性别,是男是女(身份证的倒数第二位数字判断)
  • 识别省份(前两位)、市(3-4位)、县(5-6位)
  • 识别年龄(当前日期减7-14位)
  • 识别星座(根据生日11-14位来判断)
  • 识别属相(根据出生年判断)

    二、软件截图
            

            
    三、工具下载地址
    https://www.lanzous.com/i8cpfhc
                
    三、部分源码(仅供学习)
    [Visual Basic] 纯文本查看 复制代码'计算星座
    Sub 星座()
        Dim 星座$
        If 主窗口.身份证号码s = "" Then
            星座 = ""
        Else
                Dim 日期%
                日期 = Int(Mid(主窗口.身份证号码s, 11, 4))
                If 日期 >= 1222 Or 日期 = 120 And 日期 = 219 And 日期 = 321 And 日期 = 420 And 日期 = 521 And 日期 = 622 And 日期 = 723 And 日期 = 823 And 日期 = 923 And 日期 = 1024 And 日期 = 1122 And 日期
    [Visual Basic] 纯文本查看 复制代码'计算属相
    Sub 属相()
        Dim 属相$
        If 主窗口.身份证号码s = "" Then
            属相 = ""
        Else
            Dim 全属相$
            全属相 = "猴鸡狗猪鼠牛虎兔龙蛇马羊"
            属相 = Mid(全属相, (CInt(Mid(主窗口.身份证号码s, 7, 4)) Mod 12) + 1, 1)
            主窗口.属相.Caption = 属相
        End If
    End Sub
    [Visual Basic] 纯文本查看 复制代码'身份证号码正确性校验
    Sub 身份证号码校验()
    Dim 身份证号码$, 正确性校验$, i%
    i = 2
        身份证号码 = 主窗口.身份证号码s.Text
       
        正确性校验 = 校验(身份证号码)
        If Len(身份证号码) = 15 Then
            主窗口.显示框.ForeColor = vbRed
            主窗口.显示框.Caption = "不支持验证15位身份证号码"
            主窗口.身份证号码s.SetFocus
        ElseIf Len(身份证号码)  18 Then
            主窗口.显示框.ForeColor = vbRed
            主窗口.显示框.Caption = "身份证号码位数不正确"
            主窗口.身份证号码s.SetFocus
        ElseIf 正确性校验 = "身份证号码错误" Then
            主窗口.显示框.ForeColor = vbRed
            主窗口.显示框.Caption = "身份证号码错误"
            主窗口.身份证号码s.SetFocus
        Else
            If 主窗口.源1.Value = True Then
                Call 读取地址1.地址
                Call 属相.属相
                Call 星座.星座
            Else
                Call 读取地址2.地址
                Call 属相.属相
                Call 星座.星座
            End If
        End If
        i = i + 1
    End Sub
    Function 校验(身份证号码 As String)
       
        Dim 余数, 校验码, 号码$, 校验码1, 校验码2, 校验结果
        号码 = 身份证号码
       
        '计算余数
        If 号码 = "" Then
            余数 = ""
        Else
            On Error Resume Next
            余数 = (Left(号码, 1) * 7 + Mid(号码, 2, 1) * 9 + Mid(号码, 3, 1) * 10 + Mid(号码, 4, 1) * 5 + Mid(号码, 5, 1) * 8 + Mid(号码, 6, 1) * 4 + Mid(号码, 7, 1) * 2 + Mid(号码, 8, 1) * 1 + Mid(号码, 9, 1) * 6 + Mid(号码, 10, 1) * 3 + Mid(号码, 11, 1) * 7 + Mid(号码, 12, 1) * 9 + Mid(号码, 13, 1) * 10 + Mid(号码, 14, 1) * 5 + Mid(号码, 15, 1) * 8 + Mid(号码, 16, 1) * 4 + Mid(号码, 17, 1) * 2) Mod 11
            Error = 0
        End If
       
            '计算校验码
            
            If 余数 = 0 Then
                校验码1 = 1
            ElseIf 余数 = 1 Then
                校验码1 = 0
            ElseIf 余数 = 2 Then
                校验码1 = "X"
            ElseIf 余数 = 3 Then
                校验码1 = 9
            ElseIf 余数 = 4 Then
                校验码1 = 8
            Else
                校验码1 = ""
            End If
            
            If 余数 = 5 Then
                校验码2 = 7
            ElseIf 余数 = 6 Then
                校验码2 = 6
            ElseIf 余数 = 7 Then
                校验码2 = 5
            ElseIf 余数 = 8 Then
                校验码2 = 4
            ElseIf 余数 = 9 Then
                校验码2 = 3
            ElseIf 余数 = 10 Then
                校验码2 = 2
            Else
                校验码2 = ""
            End If
            
            校验码 = 校验码1 & 校验码2
            
         If 号码 = "" Then
            校验结果 = ""
         ElseIf Len(号码) = 15 Then
            校验结果 = "未验证"
         ElseIf Len(号码) = 18 And Right(号码, 1) = 校验码 Then
            校验结果 = "身份证号码正确"
         Else
            校验结果 = "身份证号码错误"
         End If
            
         校验 = 校验结果
    End Function
             
    四、身份证地址数据库文件(未加密数据库,仅供学习使用!)
          

       


    [color=]未经允许,谢绝转载!!!
  • 1.发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;微笑

    2.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;微笑

    3.如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【金币】加分不会扣除自己的积分,做一个热心并受欢迎的人!微笑

    回复

    使用道具 举报

    快速回复
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    返回列表

    |999宝藏网|sitemap|手机版|举报|申请友情链接|  

    免责声明:

    拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表999宝藏网立场!

    999宝藏网论坛所发布的一切破解软件和补丁、注册机以及注册信息,仅限用于学习和研究目的。不得将上述内容用于商业或者非法途径!否则,一切后果请用户自负!

    我们不生产软件,我们只是互联网上的搬运工,本站信息来自互联网,版权争议与本站无关,如果您喜欢该程序,请购买注册正版软件,获得正版优质服务!

    请重视此声明,法律不容忽视!请支持正版,尊重版权!本站如有信息侵犯了您的权益,请联系:www@rin99.com及时删除!

    Powered by Discuz! © 2001-2020 Comsenz Inc. (豫ICP备16009175号) 备案图标 豫公网安备41142602000006号

    Copyright © 2016-2020 999宝藏网 版权所有 All Rights Reserved.

    GMT+8, 2020-8-14 21:23 , Processed in 0.079013 second(s), 21 queries , Redis On.

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