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

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

編輯:關於C語言

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;

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}

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