C#代码: private string per15To18(string perIDSrc) { int iS = 0; //加权因子常数 int[] iW=new int[]{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; //校验码常数 string LastCode="10X98765432"; //新身份证号 string perIDNew; perIDNew=perIDSrc.Substring(0,6); //填在第6位及第7位上填上‘1’,‘9’两个数字 perIDNew += "19"; perIDNew += perIDSrc.Substring(6,9); //进行加权求和
for( int i=0; i<17; i++) { iS += int.Parse(perIDNew.Substring(i,1)) * iW; } //取模运算,得到模值 int iY = iS%11; //从LastCode中取得以模为索引号的值,加到身份证的最后一位,即为新身份证号。 perIDNew += LastCode.Substring(iY,1); return perIDNew; }
|