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
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

64
