身份证校验
来源:互联网 发布:淘宝代理发货 编辑:程序博客网 时间:2024/04/18 04:00
using System;
using System.Collections.Generic;
using System.Text;
namespace Exercise
{
public static class CIDCard ///判断身份证号是否合法///
{
private static bool bFlag = false;
public static string Sex;
public static int Age;
public static Boolean CheckId(String idNumber)
{
string strId = idNumber;
int idNum = strId.Length;
switch (idNum)
{
case 15: //判断是否为15位身份证号
bFlag = ckID(strId);
return true;
case 18:
bFlag = ckID18(strId); //判断是否为18位身份证号
return true;
default: //缺省为身份证号不合法
return false;
}
}
public static Boolean ckID(string strID15)
{
string sex0;
string str15 = strID15;
//DateTime date = new DateTime();
int currentYear = DateTime.Now.Year; //存放当前年份
int IdYear = 1900 + Convert.ToInt16(str15.Substring(6, 2));
int Age0 = currentYear - IdYear;
if (Age0 < 16 || Age0 > 60) //身份证上年龄不合法
{ return false; }
else
{
Age = Age0;
int endId = Convert.ToInt16(str15.Substring(14, 1));
if (endId % 2 == 0)
{
sex0 = "女";
Sex = sex0;
}
else { sex0 = "男";Sex=sex0 ; }
return true;
}
}
public static Boolean ckID18(string strID18)
{
string Sex1;
int age1;
string str18 = strID18;
int currentYear = DateTime.Now.Year; //存放当前年份
int IdYear = Convert.ToInt16(str18.Substring(6, 4));
age1 = currentYear - IdYear;
if (age1 < 16 ||age1 > 60) //身份证上年龄不合法
{ return false; }
else
{
Age = age1;
int endId = Convert.ToInt16(str18.Substring(16, 1));
if (endId % 2 == 0)
{ Sex1 = "女"; Sex = Sex1; }
else { Sex1 = "男";Sex = Sex1; }
char idCode = Convert.ToChar(str18.Substring(17, 1));
if (idCode == Shen(str18))
{
//System.Windows.Forms.MessageBox.Show("客户所持为新身份证,客户年龄为" + Age + ",性别为:" + Sex);
return true;
}
else { return false; }
}
}
public static char Shen(string id)
{
int[] w = new int[] { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 };
char[] a = new char[] { '1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2' };
int s = 0;
for (int i = 0; i < 17; i++)
{
int k = (Convert.ToInt32(id[i]) - 48) * w[i];
s = s + k;
}
int h = 0;
Math.DivRem(s, 11, out h);
char endCode = a[h];
return endCode;
}
public static string getSex()
{
return Sex ;
}
public static int getAge()
{
return Age;
}
}
}
- 身份证校验
- 身份证校验
- 身份证校验
- 身份证校验
- 身份证校验
- 身份证校验
- 身份证校验
- 身份证校验
- 身份证校验
- 身份证校验
- 身份证校验
- 身份证校验
- 校验身份证
- 身份证校验
- Javascript身份证校验(原创)
- 身份证校验[pb源码]
- JS 身份证校验函数
- 身份证JS校验
- 十大妙招提升jquery的性能
- 寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。
- 44b0中断深入详解(结合代码)
- linux下RTP编程(使用JRTPLIB)(转)
- Linux 常用命令
- 身份证校验
- 高精度 大整数加法
- 3.2 运算符
- 股市笑话
- 常用坐标系
- 基于Java的搜索引擎Nutch中文搜索技术研究
- 基于Arm的Linux内核编译指导
- Ycnd 3D开始研发工作
- 免费企业邮箱: Google app企业邮局的申请