C#判断身份证号对错
时间: 2023-12-20 10:05:18 浏览: 75
以下是C#判断身份证号对错的代码示例:
```csharp
public bool CheckIDCard(string idCard)
{
if (idCard.Length != 18)
{
return false;
}
int[] wi = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
string[] checkCode = {"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"};
int sum = 0;
for (int i = 0; i < 17; i++)
{
sum += int.Parse(idCard[i].ToString()) * wi[i];
}
int mod = sum % 11;
if (checkCode[mod] == idCard.Substring(17, 1).ToUpper())
{
return true;
}
else
{
return false;
}
}
```
该方法首先判断身份证号码长度是否为18位,如果不是则返回false。然后定义一个int数组wi和一个string数组checkCode,分别存储身份证号码中每一位的权重和校验码。接着使用for循环计算身份证号码前17位的加权和,并根据加权和计算出校验码。最后将计算出的校验码与身份证号码的最后一位进行比较,如果相同则返回true,否则返回false。
阅读全文