C#中华人民共和国身份证验证
来源:互联网 发布:历史地图 数据库 编辑:程序博客网 时间:2024/04/29 09:29
规则见http://www.zhanglihai.com/article/2004/11/29/H176H3G0100200G0M060HE8DKUXYWJNE.html
#region 大陸身份證號碼驗證
private bool CheckIDCard_CHS(string IDCard)
{
string[] arrVarifyCode=("1,0,x,9,8,7,6,5,4,3,2").Split(',');
string[] Wi=("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(',');
string[] Checker=("1,9,8,7,6,5,4,3,2,1,1").Split(',');
int intLength=IDCard.Length;
int i=0,TotalmulAiWi=0;
int modValue=0;
string strVerifyCode="";
string Ai="";
string BirthDay="";
int intYear=0;
int intMonth=0;
int intDay=0;
if(intLength<15||intLength==16||intLength==17||intLength>18)
{
return false;
}
if(intLength==18)
{
Ai=IDCard.Substring(0,17);
}
else if(intLength==15)
{
Ai=IDCard;
Ai=Ai.Substring(0,6)+"19"+Ai.Substring(6,9);
}
if(!IsNumeric(Ai))return false;
intYear=Convert.ToInt32(Ai.Substring(6,4));
intMonth=Convert.ToInt32(Ai.Substring(10,2));
intDay=Convert.ToInt32(Ai.Substring(12,2));
BirthDay=intYear.ToString()+"-"+intMonth.ToString()+"-"+intDay.ToString();
if(IsDateTime(BirthDay))
{
DateTime DateBirthDay=DateTime.Parse(BirthDay);
if(DateBirthDay>DateTime.Now)
{
return false;
}
int intYearLength=DateBirthDay.Year-DateBirthDay.Year;
if(intYearLength<-140)
{
return false;
}
}
if(intMonth>12||intDay>31)
{
return false;
}
for(i=0;i<17;i++)
{
TotalmulAiWi=TotalmulAiWi+(Convert.ToInt32(Ai.Substring(i,1))*Convert.ToInt32(Wi[i].ToString()));
}
modValue=TotalmulAiWi % 11;
strVerifyCode=arrVarifyCode[modValue].ToString();
Ai=Ai + strVerifyCode;
if(intLength==18&&IDCard!=Ai)
{
return false;
}
return true;
}
#endregion
/// <summary>
/// 判斷字符串是否可轉換為DateTime
/// </summary>
/// <param name="s">要判斷的字符串</param>
/// <returns>true=可以轉換;false=無法轉換</returns>
private bool IsDateTime(string s)
{
try
{
System.DateTime.Parse(s);
}
catch
{
return false;
}
return true;
}
/// <summary>
/// 判斷字符串是否可以轉換為數字
/// </summary>
/// <param name="value">要判斷的字符串</param>
/// <returns>true=可以轉換;false=無法轉換</returns>
private bool IsNumeric(object value)
{
try
{
double i = Convert.ToDouble (value.ToString());
return true;
}
catch (FormatException)
{
return false;
}
}
- C#中华人民共和国身份证验证
- C#中华人民共和国身份证验证
- 中华人民共和国身份证验证规则
- C#中国身份证验证
- C#中国身份证验证
- C#中国身份证验证
- C#实现身份证验证
- C#身份证格式验证
- 身份证验证算法C#
- C#身份证验证
- C#身份证验证
- C# 身份证验证程序
- C#身份证验证
- C#台湾身份证合法性验证
- c#正则表达式验证身份证
- C#验证身份证是否有效
- c#编程 验证身份证问题
- 中华人民共和国 第二代身份证 号码规则
- 一个愚蠢的点子是如何变成一个热门网站的
- 写博客的人如何保重龙体?
- Password Hacking -34in1
- 关于项目成功的一点思考
- 08年投资之道-趋势和技术的结合
- C#中华人民共和国身份证验证
- 读取自己真实基础配置对象内容
- 求职时千万别光递简历
- js表单验证控制代码大全
- PHP 2007 回顾
- 验证码功能的实现
- 多文件上传类
- 阅读笔记:骑驴找马 职业发展线路
- Linux文件操作-->扫描目录