当前位置:  编程技术>.net/c#/asp.net

C#小程序15位转18位身份证号代码

    来源: 互联网  发布时间:2014-10-16

    本文导语:  现在我们使用的都是18位身份证号,而以前都是15位身份证号,而如何将15位身份证号转18位身份证号转换为18位身份证号呢? 1、首先,在15位身份证的第6位之后加上“19”变为17位,即出生年月的年加上19,比如原来的92年就变...

现在我们使用的都是18位身份证号,而以前都是15位身份证号,而如何将15位身份证号转18位身份证号转换为18位身份证号呢?

1、首先,在15位身份证的第6位之后加上“19”变为17位,即出生年月的年加上19,比如原来的92年就变为1992

2、然后,就是最后一位的计算,方法如下:

1)将1得到的17位身份证号,每一位乘以相应的系数,17位系数为{ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }

2)将(1)求得17个数相加求和为temp


3)将temp除以11取余,temp%=11;

4)将取余之后的结果作为尾数数组endNum[]的下标,找出对于的值endNum[temp],然后将endNum[temp]加到17位身份证之后变为18位,

尾数数组endNum[]={ '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IDCard
{
    class Program
    {
        ///
        /// 主函数
        ///
        ///
        static void Main(string[] args)
        {
            Console.Write("请输入15位身份证号:");
            string OldID=Console.ReadLine();//输入15身份证号
            string newId =IDCardTranslation(OldID);//新身份证号
            Console.WriteLine("18位新身份证号为:{0}",newId);//输出
            Console.ReadLine();
        }
        ///
        /// 15位身份证号转18位身份证号
        ///
        /// 15位身份证号
        /// 18位身份证号
        private static string IDCardTranslation(string oldCard)
        {
            int[] coefficient = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };//17位身份证号每一位的系数
            char[] endNum = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };//身份证最后一位数组
            if (oldCard.Length == 15)//判断是否是15位
            {
                string newID = oldCard.Insert(6, "19");//在15位身份证号的第6位之后添加19,变成17位
                int s = 0;
                for (int i = 0; i < 17; i++)//17位号码每一位都乘以相应的系数
                {
                    int temp = Convert.ToInt32(newID[i]) * coefficient[i];
                    s += temp;//乘系数之后求和
                }
                s %= 11;//除以11取余
                newID += endNum[s].ToString();//17位号码加上 余数所代表的下标在尾数数组endNum中的字符
                return newID;//返回新ID号码
            }
            else
            {
                return "";
            }
        }
    }
}


    
 
 

您可能感兴趣的文章:

  • C#取得Web程序和非Web程序的根目录的N种取法总结
  • 深入C#任务管理器中应用程序选项隐藏程序本身的方法详解
  • C# 获取(非)Web程序根目录的可用方法
  • C# 获取程序集版本、文件版本
  • C# WinForm程序完全退出的问题解决
  • C#会让我们这些java程序员下岗吗?
  • 设置C#窗体程序只能启动一次
  • 解读在C#中winform程序响应键盘事件的详解
  • C#程序打成 一键安装包-InstallShield教程
  • 使用C# Winform应用程序获取网页源文件的解决方法
  • c# 命名空间和程序集
  • C#访问应用程序配置文件的方法
  • 将ocx文件转换成C#程序引用的DLL文件的办法
  • C#判断某程序是否运行的方法
  • C#窗体程序仅允许启动一次的解决方法
  • c# 命名空间与程序集的相关概念
  • 将c#编写的程序打包成应用程序的实现步骤分享(安装,卸载) 图文
  • C#程序自动以管理员方式运行的实现方法
  • c#使用process.start启动程序报错解决方法
  • C#中使用IrisSkin2.dll美化WinForm程序界面的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求:18位身份证号码校验的源程序
  • 当邮件服务器设置了身份验证时,邮件发送程序返回 SMTP 550 错误时怎么解决?
  • 普通用户身份执行一个程序来更改另外一个文件的读写属性,可以实现吗?
  • C#默认以管理员身份运行程序实现代码
  • 关于C#.net winform程序验证moss的集成身份认证实例
  • 一个计算身份证号码校验位的Python小程序
  • 基于Python的身份证号码自动生成程序
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • linux下通过crond实现自动执行程序
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • 重装服务器后IIS网站错误(应用程序中的服务器错误) iis7站长之家
  • 在java控制台程序中,可以用System.exit(0);使用一个程序终止,那么在servlet中如何使一个servlet程序终止呢?
  • 程序员赚钱致富的6种方法
  • 程序调用脚本,脚本启动另一个程序,如何让原始程序彻底释放资源?
  • HASH查找的程序实现及性能分析
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • linux下,一个程序如何向另一个程序发送消息,另一个程序如何接收


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3