18位身份证c#源代码

private  string  CheckCidInfo(string  cid)
{
string[]  aCity  =  new  string[]{null,null,null,null,null,null,null,null,null,null,null,"北京","天津","河北","山西","内蒙古",null,null,null,null,null,"辽宁","吉林","黑龙江",null,null,null,null,null,null,null,"上海","江苏","浙江","安微","福建","江西","山东",null,null,null,"河南","湖北","湖南","广东","广西","海南",null,null,null,"重庆","四川","贵州","云南","西藏",null,null,null,null,null,null,"陕西","甘肃","青海","宁夏","新疆",null,null,null,null,null,"台湾",null,null,null,null,null,null,null,null,null,"香港","澳门",null,null,null,null,null,null,null,null,"国外"};
double  iSum=0;
string  info="";
System.Text.RegularExpressions.Regex  rg  =  new  System.Text.RegularExpressions.Regex(@"^\d{17}(\d|x)$");
System.Text.RegularExpressions.Match  mc  =  rg.Match(cid);
if(!mc.Success)
{
return  "";
}     
cid  =  cid.ToLower();
cid  =  cid.Replace("x","a");
if(aCity[int.Parse(cid.Substring(0,2))]==null)
{
return  "非法地区";
}
try
{
DateTime.Parse(cid.Substring(6,4)+"-"+cid.Substring(10,2)+"-"+cid.Substring(12,2));
}
catch
{
return  "非法生日";
}
for(int  i=17;i>=0;i--)
{       
iSum  +=(System.Math.Pow(2,i)%11)*int.Parse(cid[17-i].ToString(),System.Globalization.NumberStyles.HexNumber);
}
if(iSum%11!=1)
return("非法证号");
   
return(aCity[int.Parse(cid.Substring(0,2))]+","+cid.Substring(6,4)+"-"+cid.Substring(10,2)+"-"+cid.Substring(12,2)+","+(int.Parse(cid.Substring(16,1))%2==1?"男":"女"));
 
}
全封装好的!!!复制到c#就可以用

时间: 2024-10-08 05:21:30

18位身份证c#源代码的相关文章

一个18位身份证校验计算函数

函数|函数 因需要对15位旧身份证号码进行升位和校验.查询处理,又没有搜索到现成的函数,于是自己写了一个简单的过程,希望能够帮得上需要的朋友.本函数的功能单一,只能校验第18位号码是否正确或者取得第18位号码,其他功能留给大家自己扩展吧! <%' Version: 1.0.1' Author: sfply(sfply@163.com)' Last Modified: 2004/7/17 12:03' Src是身份证号码,可以是15位也可以是18位,15位时只能返回验证码方式使用' iChk参数取

C#实现的18位身份证格式验证算法

算法 18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999<公民身份号码>中做了明确的规定. GB11643-1999<公民身份号码>为GB11643-1989<社会保障号码>的修订版,其中指出将原标准名称"社会保障号码"更名为"公民身份号码",另外GB11643-1999<公民身份号码>从实施之日起代替GB11643-1989.GB11643-1999<公民身份号码>主要

WPS移动版巧妙设置快速输入18位身份证号码

财务工作人员经常接触Excel表格,阿mo也不例外.而且财务人员在制作工资表格,或人事部门在统计员工资料时需要输入身份证号码或银行账户等,数字无法完整显示的问题自然会影响工作效率. 其实利用WPS移动版,打开或新建Excel表格进行编辑时,简单设置几下即可正常显示所有数字,看看阿mo是如何办到的吧! 首先阿mo要提醒大家,对于WPS移动版而言,Excel表格中默认最大只能显示11位数字,阿mo也从图例中可以看到,表格单元格中的11位手机号码是可以正常显示出来的. 由于WPS移动版默认显示为科学计

15位和18位身份证JS校验的简单实例_javascript技巧

一.身份证号码的结构和表示形式 1.号码的结构 根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 2.地址码 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行. 3.出生日期码 表示编码对象出生的年.月.日,按GB/T7408的规定执行,年.月.日代码之间不用分隔符. 4.顺序

java,javascript对18位身份证格式的验证算法

参考资料 1 java实现的18位身份证格式验证算法 http://fanqiang.chinaunix.net/program/java/2006-06-22/4639.shtml 原码中有少许错误,我已经调整过来了 2 身份证效验规则,经典 http://since2006.com/blog/176 公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 1.地址码 表示编码对象常住户口所

C#小程序15位转18位身份证号代码_C#教程

现在我们使用的都是18位身份证号,而以前都是15位身份证号,而如何将15位身份证号转18位身份证号转换为18位身份证号呢? 1.首先,在15位身份证的第6位之后加上"19"变为17位,即出生年月的年加上19,比如原来的92年就变为1992 2.然后,就是最后一位的计算,方法如下: 1)将1得到的17位身份证号,每一位乘以相应的系数,17位系数为{ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 } 2)将(1)求得17个数相加求和

JavaScript验证18位身份证号码最后一位正确性的实现代码_javascript技巧

根据身份证号码推算出最后一位的正确性,如果不正确还会给出正确结果,非常有意思的一断程序. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &l

15/18位身份证号码验证的正则表达式总结(详细版)

前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM dd 375 0     十八位 xxxxxx    yy MM dd   75 0     十五位 地区: [1-9]\d{5} 年的前两位: (18|19|([23]\d))            1800-2399 年的后两位: \d{2} 月份: ((0[1-9])|(10|11|12)) 天

Excel表格输入18位身份证号出现错误了,后边都是0,怎么解决?

方案一:把单元格格式改为"文本",再重新输入! 方案二:一.解决输入身份证号码的问题 默认情况下在Excel当前单元格中输入的数字位数如果超过11位(不含11位)时,系统将以"科学记数"格式显示输入的数字;当输入的数字位数超过15位(不含15位)时,系统将15位以后的数字全部显示为"0".这样一来,如果我们要输入身份证号码(15位或18位),身份证号码就不能正确显示出来了.此时,我们有两种办法解决此问题: 1.利用数字标签 选中需要输入身份证号码