1using System; 2using System.Collections; 3 4public class MyClass 5{ 6 public static void Main() 7 { 8 Console.WriteLine(per15To18("429005811009091")); 9 RL(); 10 } 11 12 public static string per15To18(string perIDSrc) 13 { 14 int iS = 0; 15 16 //加权因子常数 17 int[] iW=new int[]{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; 18 //校验码常数 19 string LastCode="10X98765432"; 20 //新身份证号 21 string perIDNew; 22 23 perIDNew=perIDSrc.Substring(0,6); 24 //填在第6位及第7位上填上‘1’,‘9’两个数字 25 perIDNew += "19"; 26 27 perIDNew += perIDSrc.Substring(6,9); 28 29 //进行加权求和 30 for( int i=0; i<17; i++) 31 { 32 iS += int.Parse(perIDNew.Substring(i,1)) * iW[i]; 33 } 34 35 //取模运算,得到模值 36 int iY = iS%11; 37 //从LastCode中取得以模为索引号的值,加到身份证的最后一位,即为新身份证号。 38 perIDNew += LastCode.Substring(iY,1); 39 40 return perIDNew; 41 } 42 43 44 45 46 Helper methods#region Helper methods 47 48 private static void WL(object text, params object[] args) 49 { 50 Console.WriteLine(text.ToString(), args); 51 } 52 53 private static void RL() 54 { 55 Console.ReadLine(); 56 } 57 58 private static void Break() 59 { 60 System.Diagnostics.Debugger.Break(); 61 } 62 63 #endregion 64} http://www.cnblogs.com/goody9807/archive/2006/11/13/559378.html
|