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
}

2

3

4

5



6

7



8

9

10

11

12

13



14

15

16

17



18

19

20

21

22

23

24

25

26

27

28

29

30

31



32

33

34

35

36

37

38

39

40

41

42

43

44

45

46


47

48

49



50

51

52

53

54



55

56

57

58

59



60

61

62

63

64
