`

ASP.NET 将15位身份证号码转换成18位

    博客分类:
  • .Net
c# 
阅读更多
//*********************************************************************************
    //将15位身份证转换成18位时,首先把出生年扩展4位,就是在原来15位号码的第6为数字后
    //增加一个19,然后在第17位数字后添加一位校验码,校验码是由前17位数字本体码加权求
    //和公式,通过计算模,再通过模得到对应的校验码。
    //计算校验码公式
    //(1)17位数字本体码加权求和公式
    //S=Sum(Ai*Wi),i=0,...,16,先对前17位数字的权求和
    //Ai:表示第i位置上的身份证号码数字值
    //Wi:表示第i位置上的加权因子
    //Wi;7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
    //
    //(2)计算模
    //Y=mod(S,11)
    //(3)通过模得到对应的校验码
    //Y:0 1 2 3 4 5 6 7 8 9 10
    //校验码:1 0 X 9 8 7 6 5 4 3 2
    //*****************************************************************************
    /// <summary>
    /// 将15位的身份证号码转换成18位的身份证好码
    /// </summary>
    /// <param name="idCard">身份证号码</param>
    /// <returns>返回18位身份证号码</returns>
    public static string Convert15to18 (string idCard)
    {
        string code = idCard.Trim();//获得身份证号码
        if (code.Length==15)//如果是15位则转换
        {            
            char[] strJY ={ '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };
            int[] intJQ ={ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 };
            string strTemp;
            int intTemp = 0;
            strTemp = code.Substring(0, 6) + "19" + code.Substring(6);
            for (int i = 0; i <= strTemp.Length - 1; i++)
            {
                intTemp = intTemp + int.Parse(strTemp.Substring(i, 1)) * intJQ[i];
            }
            intTemp = intTemp % 11;
            return strTemp + strJY[intTemp];
        }
        else
        {
            if (code.Length == 18)//如果是18位直接返回
            {
                return code;
            }
            return string.Empty;//如果即不是15位也不是18位则返回空
        }       
    }
    /// <summary>
    /// 获得出身年月日
    /// </summary>
    /// <param name="idCard">身份证号码</param>
    /// <returns>返回出身年月日</returns>
    public static string GetBirth(string idCard)
    {
        string code = Convert15to18(idCard);//获得身份证号码
        if (code != string.Empty)
        {
            string year = code.Substring(6, 4);//获得身份证号码里面的年
            string month = code.Substring(10, 2);//获得身份证号码里面的月
            string day = code.Substring(12, 2);//获得身份证号码里面的日
            return year + "年" + month + "月" + day + "日";
        }
        else
        {
            return string.Empty;
        }
    }
分享到:
评论

相关推荐

    身份证验证颜色值转换 asp.net 源码

    标题中的“身份证验证颜色值转换asp.net源码”暗示了这是一个使用ASP.NET开发的身份验证程序,其中包含了将身份证号码与特定颜色值关联的功能。在描述中提到,此程序能够处理15位和18位的身份证号码,并且指出身份证...

    asp.net 中国身份证号码验证代码 非正则

    ASP.NET中国身份证号码验证代码非...4. ASP.NET 中身份证号码验证的实现方式:使用 CheckIDCard18 和 CheckIDCard15 方法来验证身份证号码。 注意:本文中的代码仅供参考,实际开发中请根据具体情况进行修改和调整。

    [其他类别]身份证号码验证示例源码_idcardvalid(ASP.NET源码).rar

    3. **生日验证**:身份证号码的第7位到第14位代表出生日期,源码会将这些数字转换成日期格式,并与当前日期进行比较,确认是否符合实际年龄范围。 4. **地址码验证**:第1位到第6位是地址码,表示持证人的户籍所在...

    ASP身份证批量校验有效性,自动升位,计算年龄、性别,EXCEL导出

    接下来,**自动升位**可能指的是在处理身份证号码时,如果遇到早期的15位身份证号码,工具会自动将其转换为18位。这是因为1999年后,我国开始全面使用18位身份证,而之前发放的15位身份证在某些情况下需要升级以适应...

    身份证号码验证示例源码2008-4-22

    这个示例源码提供了ASP.NET和C#实现的身份证号码验证功能,可以处理15位和18位的身份证号码,并声称有90%的成功验证率。下面我们将详细探讨身份证号码验证的原理以及该示例源码可能涉及的关键技术。 1. **身份证...

    asp根据身份证号自动识别显示生日

    在给定的标题“asp根据身份证号自动识别显示生日”中,我们可以理解这是一个使用ASP编程语言实现的功能,该功能旨在从用户的身份证号码中提取出生日期,并将其显示在网页上。 身份证号码是中国公民身份的唯一标识,...

    根据身份证号判断出生日期和性别

    在中国,身份证号码是18位数字,其中包含了个人信息,包括地区代码、出生日期和顺序码等。在这个过程中,我们可以利用VB.NET这一编程语言来实现这一功能。 首先,我们需要了解身份证号码的结构。前6位代表的是行政...

    ASP.NET正则表达式应用

    6. **匹配身份证号(15位或18位):** `^\d{15}|\d{18}$` - 用于验证身份证号码的格式是否正确。 7. **匹配月份(1-12月):** `^(0?[1-9]|1[0-2])$` - 用于验证输入的月份是否合法。 8. **匹配日期(1-31日):...

    ASP.NET中实现EXCEL导入和导出

    4. **导出数据**:将数据库中的数据转换成Excel格式并提供下载。 #### 示例代码解析 ##### 导入Excel数据 本例展示了如何在ASP.NET中实现从Excel文件导入数据到数据库的过程。主要涉及到了以下技术点: - 使用`...

    asp.net学籍注册+验证+头像+输出

    ASP.NET是一种基于.NET框架的服务器端编程环境,用于构建动态Web应用程序。在这个“asp.net学籍注册+验证+头像+输出”的项目中,我们主要关注几个关键知识点:用户照片上传、图片缩略图显示、表单验证、账号验证以及...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    Visual Studio 2005及以上版本、ASP.NET 2.0及以上版本 本书14~16章所附代码的调试环境 Windows家族,Apache 2.0及以上版本 PHP 5.0及以上版本 本书17~18章所附代码的调试环境 JDK6.0 Eclipse3.2+Lomboz 本书19...

    ASP.NET 常用函数及方法

    22. **验证身份证号码(15位或18位):** `^\d{15}|\d{18}$` 23. **验证月份(1-12):** `^(0?[1-9]|1[0-2])$` 24. **验证日期(1-31):** `^((0?[1-9])|((1|2)[0-9])|30|31)$` 以上介绍了ASP.NET中常用的函数和...

    《ASP.NET与数据库程序设计》

    5-3 ASP.NET如何结合数据库 5-3-1关于ADO.NET 5-3-2与数据库无关的DataSet DataSet的内容 DateSet的来源(自行建立) DateSet的来源(取用数据库) 控制项结合DataSet 回存至来源 5-3-3...

    ASP.NET正则表达式应用小结

    - **用途**:验证输入是否为15位或18位的身份证号码。 - **示例**:“123456789012345”、“123456199001011234”通过验证,“12345678901234”不通过。 - **月份**:“`^(0?[1-9]|1[0-2])$`” - **用途**:验证...

    一个基于C#+ASP.NET实现的数据安全加密与解密的类库及例子源码程序

    本文将深入探讨一个基于C#和ASP.NET实现的数据加密与解密的类库及其应用实例。这个类库为开发者提供了一种有效的方式来保护他们的应用程序中的数据,确保其在传输过程中不被非法获取或篡改。 首先,C#是一种面向...

    风越.Net代码生成器 [FireCode Creator] V1.3 精简版

    《风越.Net代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx两种代码框架及多个...

Global site tag (gtag.js) - Google Analytics