【身份证最后一位神秘X的由来】身份证中的“冷知识”
1999年的今天,《国务院关于实行公民身份号码制度的决定》被发布,当年10月1日实施。为什么有的有X?这位数是根据前17位计算出的校验码。如某人尾号是0-9,不会有X,如是10,则用X代替。Ⅹ是罗马数字的10,这能保证身份证号不多位。

/// <summary>
/// 转换15位身份证号码为18位
/// </summary>
/// <param name="oldIDCard">15位的身份证</param>
/// <returns>返回18位的身份证</returns>
private string IDCard15To18(string oldIDCard)
{
int iS = ; //加权因子常数
int[] iW = new int[] { , , , , , , , , , , , , , , , , };
//校验码常数
string LastCode = "10X98765432";
//新身份证号
string newIDCard; newIDCard = oldIDCard.Substring(, );
//填在第6位及第7位上填上‘1’,‘9’两个数字
newIDCard += ""; newIDCard += oldIDCard.Substring(, ); //进行加权求和
for (int i = ; i < ; i++)
{
iS += int.Parse(newIDCard.Substring(i, )) * iW[i];
} //取模运算,得到模值
int iY = iS % ;
//从LastCode中取得以模为索引号的值,加到身份证的最后一位,即为新身份证号。
newIDCard += LastCode.Substring(iY, );
return newIDCard;
}

身份证号码15位转18位 C#实现的更多相关文章

  1. 做一个牛XX的身份证号验证类(支持15位和18位)

    原文:做一个牛XX的身份证号验证类(支持15位和18位) #region 是否合法的中国身份证号码 protected bool IsChineseID() { if (str.Length == 1 ...

  2. java中身份证号15位转18位

    /** * 将15位转换为18位 * @param idCode 15位身份证号 * @return String 18位身份证号 */ public String toEighteen(String ...

  3. C# 身份证号码15位和18位验证

    /// <summary> /// 身份证 /// </summary> [Serializable] public class IDCard {     /// <su ...

  4. java 身份证15位转18位

    /** * 根据身份证号获取性别 * * @param pid * 身份证号 * @return 性别 F为女M为男 */ public static String getSexByPid(Strin ...

  5. php 验证身份证有效性,根据国家标准GB 11643-1999 15位和18位通用

    //验证身份证是否有效 function validateIDCard($IDCard) { if (strlen($IDCard) == 18) { return check18IDCard($ID ...

  6. 18位身份证验证(Java)加入身份证输入验证是否满足18位代码(修订稿)

    package day20181016; /** * 身份证的验证 34052419800101001X * */ import java.util.Scanner; public class Zuo ...

  7. 16Aspx.com-将15位身份证转换成18位

    //********************************************************************************* //将15位身份证转换成18位时 ...

  8. Js完美验证15/18身份证,Js验证身份证,支持15/18位

    Js完美验证15/18身份证,Js验证身份证,支持15/18位 >>>>>>>>>>>>>>>>> ...

  9. js验证15位或18位身份证

    本篇文章是本人在网上搜集了一些验证,然后又个人进行一定修改的关于身份证的验证,欢迎修改指正..... function IdCardValidateRule(idCard) { var tip;    ...

随机推荐

  1. sap IRfcTable 转成 DataTable

    public DataTable GetDataTableFromRFCTable(IRfcTable myrfcTable) { DataTable loTable = new DataTable( ...

  2. ubuntu 安装bochs

    //首先官网下载bochs源码wget http://bochs.sourceforge.net/svn-snapshot/bochs-20150503.tar.gz//然后解压 tar vxzf b ...

  3. Redis PHP通用类

    找到一个比较全的Redis PHP操作类库,分享给大家 <?php /**  * redis操作类  * 说明,任何为false的串,存在redis中都是空串.  * 只有在key不存在时,才会 ...

  4. Potocol Buffer详解

    protocol安装及使用 上一篇博文介绍了一个综合案例,这篇将详细介绍protocol buffer. 为什么使用protocol buffer? java默认序列化效率较低. apache的thr ...

  5. DB2 v9.1 RACF 瞎学笔记

    一.DB2 RACF control module 定义在prefix.SDSNSAMP(DSNXRXAC)中,查找一下数据集 符合*.SDSNSAMP数据集有两个,我这里使用的DB V9,自然pre ...

  6. Java知多少(112)数据库之删除记录

    删除数据表也有3种方案 一.使用Statement对象 删除数据表记录的SQL语句的语法是: delete from 表名 where 特定条件 例如 : delete from ksInfo whe ...

  7. Tips4:把 Inspector面板转换为Debug模式

    你知道 Inspector 的调试(debug)模式吗? 当debug模式打开后, Inspector将会把游戏物体所有的属性都显示出来,包括公有(public)和私有(private)变量. 例如, ...

  8. AngularJS 五大特性,加快 Web 应用开发

    AngularJS 是谷歌的一个 JavaScript 框架,旨在简化前端应用程序的开发.如果你在开发单页的应用程序,我敢肯定你已经听说过它.我是 AngularJS 的忠实粉丝,在这篇文章中我将概述 ...

  9. java抽象类和接口区别

    深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...

  10. js页面跳转参考代码大全

    整理一下JS页面跳转参考代码 第一种:     <script language=/"javascript/" type=/"text/javascript/&qu ...