程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 用C#實現由15位身份證號升級到18位的算法

用C#實現由15位身份證號升級到18位的算法

編輯:關於C#

1 using System;
2 using System.Collections;
3
4 public 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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved