搜档网
当前位置:搜档网 › C语言 身份证号码计算

C语言 身份证号码计算

C语言  身份证号码计算
C语言  身份证号码计算

//此程序的功能,在于输入身份证号码前十七位,可输出最后一位://made by happy lamb QQ:752598997

#include

int main()

{

int i,a[17],b[17],c[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2},sum=0,x,y;

printf("请输入您的身份证号码前17位:\n");

for(i=0;i<17;i++)

{

scanf("%1d",&a[i]);

}

printf("您输入的身份证号码前17位为:\n");

for(i=0;i<17;i++)

{

printf("%1d",a[i]);

}

for(i=0;i<17;i++)

{

b[i]=a[i]*c[i];

}

for(i=0;i<17;i++)

{

sum=sum+b[i];

}

x=sum%11;

printf("\n您的身份证号为:\n");

for(i=0;i<17;i++)

{

printf("%1d",a[i]);

}

if(x==0){

y=1;

printf("%d",y);

}

if(x==1){

y=0;

printf("%d",y);

}

if(x==2){

y=10;

printf("X");

}

else if(x>2){

y=12-x;

printf("%d\n",y);

}

printf("\n您的生日是%d%d月%d%d日\n",a[10],a[11],a[12],a[13]); }

Excel表格中根据身份证号码自动填出生日期、计算年龄[1]

Excel表格中根据身份证号码自动填出生日期、计算年龄18位身份证号码转换成出生日期的函数公式:如果E2中是身份证,在F2 中求出出生日期,F2=DATE(MIDB(E2,7,4),MIDB(E2,11,2),MIDB(E2,13,2)) 自动录入男女:=IF(MOD((IF(LEN(e2)=18,MID(e2,17,1),MID(e2,15,1))),2)=0,"女","男") 15/18位都可以的公式:转换出生日期: =IF(LEN(e2)=18,TEXT(MID(e2,7,8),"#-00-00"),"19"&TEXT(MID(e2,7,6),"#-0 0-00")) 自动录入男女:=IF(E2="","",IF(MOD(RIGHT(LEFT(E2,17),1),2)=0,"女","男")) 计算年龄(新旧身份证号都可以): =IF(AND(E2=""),"",IF(MIDB(E2,7,2)="19",107-MIDB(E2,9,2),107-MIDB(E2,7 ,2))) WPS表格提取身份证详细信息 前些天领导要求统计所有员工的性别、出生日期、年龄等信息,并且要得很急。而我们单位员工人数众多,短时间内统计相关信息并且输入计算机几乎是不太可能的。幸好在以前的一份金山表格中我们曾经统计有所有员工的身份证号码,而身份证中正有我们所需要的性别、出生日期、年龄等信息的。所以,干脆,还是直接在金山表格中从身份证号码提取相关的信息吧。 身份证号放在A2单元格以下的区域。我们需要从身份证号码中提取性别、出生日期、年龄等相关信息。由于现在使用的身份证有15位和18位两种。所以,在提取相关信息时,首先应该判断身份证号码的数字个数,然后再区别不同情况进行相关处理。 一、身份证号的位数判断 在B2单元格输入如下公式“=LEN($A2)”,回车后即可得到A2单元格身份证号码的数字位数,如图1所示。LEN($A2)公式的含义是求出A2单元格字符串中字符的个数。由于当初身份证输入时就是以文本形式输入的,所以用此函数正可以很方便地求到身份证号码的位数。

Excel里通过身份证号码计算性别

在EXCEL中利用身份证号码计算性别 原理: 15位身份证,看最后一位,奇男偶女;18位的,看第17位数,也是奇男偶女。 公式内的“B2”代表的是输入身份证号码的单元格。 方法一: =IF(LEN(B2)=15,IF(MOD(MID(B2,15,1),2)=1,"男","女"),IF(MOD(MID(B2,17,1),2)=1,"男","女")) 公式含义: 如果B2单元格中式15位的身份证号,则显示IF(MOD(MID(B2,15,1),2)=1,"男","女")的计算结果,否则,显示IF(MOD(MID(B2,17,1),2)=1,"男","女")的计算结果。 方法二: 18位身份证号码中,第15~17位为顺序号,奇数为男,偶数为女。 将光标定位在“性别”单元格中,然后在单元格中输入函数公式:=IF(VALUE(MID(B2,15,3))/2=INT(VALUE(MID(B2,15,3))/2),"女","男") 公式含义: ①函数公式中,MID(D2,15,3)的含义是将身份证中的第15~17位提取出来。 ②VALUE(MID(D2,15,3))的含义是将提取出来的文本数字转换成能够计算的数值。 ③VALUE(MID(D2,15,3))/2=INT(VALUE(MID(D2,15,3))/2)的含义是判断奇偶。(“INT”是取整函数,如果是偶数,则前后相等;如果是奇数,则前后不相等。) ④=IF(VALUE(MID(D2,15,3))/2=INT(VALUE(MID(D2,15,3))/2),"女","男")的含义是若是“偶数”就填写“女”,若是“奇数”就填写“男”。

Excel判断身份证号校验码

Excel判断身份证号校验码 假设在一个工作表中:A列是姓名,B列是身份证号码,C列是备注。在B列中输入18位身份证号码后,在C2单元格中输入计算数组公式: =RIGHT(B2,1)=MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1) 然后再将该公式复制给C列其他单元格。 公式的计算结果是一个逻辑值,True表示校验正确,即计算出来的校验码与输入的相同,而False则表示校验错误。值得注意的是,使用校验码进行校验判断为正确的身份证号码未必是正确的,但判断为错误的则肯定是错误的,即通过校验的只是身份证号码正确的必要条件而非充分条件。当然,在实际输入中,身份证号码输入错误而校验正确的情况很少见。在大多数情况下,使用校验码进行校验可以大大提高身份证号码输入的正确性。 RIGHT 根据所指定的字符数返回文本字符串中最后一个或多个字符。 MID 返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。 MOD 返回两数相除的余数。SUM 返回某一单元格区域中所有数字之和。ROW 返回引用的行号。INDIRECT 返回由文本字符串指定的引用。 或者输入数组公式: =IF(LEN(B2)<>18,"错误 ",IF(MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=MID(B2,18,1), "正确","错误"))

Excel如何根据身份证号码自动计算年龄

Excel如何根据身份证号码自动计算年龄方法1 1.打开要在excel中编辑的表格 2.如图所示,在身份证号后面的空格即年份一列第一格输入公式=MID(A2,7,4),输入完成后按下enter键,A2指身份证号的单元格,数字7为数字开始位置,4为字符个数 3.按下enter键后,如图所示年份一栏已显示出出生年份 4.如图所示,选中已显示年份的一格,鼠标点击绿色框右下角的小方框并下拉至身份证号的最后一栏 5.如图所示,每个身份证号对应的年份都显示出来了 6.如图所示再在年龄一列第一格输入公式2018-MID(A2,7,4),按下enter键 7.即可看到年龄已被计算出来为21岁,如图所示鼠标点击绿色框右下角的小方框并下拉至身份证号的最后一栏 8.如图所示,用这种“自动填充”功能,就能让同类型单元格有同样的公式计算结果 方法2 1.打开要在excel中编辑的表格,并选中年龄那一列的第一格 2.点击公式 3.再点击插入函数 4.在弹出来的对话框中在选择函数那一栏点击全部 5.下拉右侧的滚动条找到MID函数点击它

6.点击右下角的确定 7.在弹出来的对话框中点击第一格 8.然后点击Excel文档中的A2单元格 9.在第二格中输入数字7,表示数字开始位置 10.在第三格中输入数字4,表示字符个数为四个 11.最后单击确定 12.即可看到该身份证号的年份已经算出来了 13.然后在该公示前输入2018-即公式2018-MID(A2,7,4)按下enter键 14.即可看到年龄计算出来为21岁,下拉该单元格右下角的小黑方使下面的单元格拥有同样的计算格式 15.最后即可看到所有的年龄就被计算出来了

Excel表中身份证号码提取出生年月、年龄、性别的使用技巧[1]

Excel表中身份证号码提取出生年月、性 别、年龄的使用技巧 excle中当一个序列号变更,下面序列号自动变更的方法。 浏览次数:298次悬赏分:0 |解决时间:2011-3-11 12:48 |提问者:kasure 问题补充: 比如我编制了序列号001,002,003。。。。,然后我要是中间插入一行,比如在002和003之间插入一行,我下面的编号都要变动,如何实现这样的功能? 最佳答案 那我想知道如果你需要删除一行的话,下面的编号是否需要变动?如果都需要变动的话,你可以试试这样: 1、把序号列的单元格格式改成"000"(在设置单元格格式--自定义--类型那里可以改) 2、把序列号的单元格填上公式=row() 。如果表格上面有表头的话,你数数表头有多少行,在公式后面减去行数,例如有5行表头,公式就是=row()-5 当你插入行的时候把公式填上就可以了 方法一: 1.Excel表中用身份证号码中取其中的号码用:MID(文本,开始字符,所取字符数); 2.15位身份证号从第7位到第12位是出生年月日,年份用的是2位数。

18位身份证号从第7位到第14位是出生的年月日,年份用的是4位数。 从身份证号码中提取出表示出生年、月、日的数字,用文本函数MID()可以达到目的。MID()——从指定位置开始提取指定个数的字符(从左向右)。 对一个身份证号码是15位或是18位进行判断,用逻辑判断函数IF()和字符个数计算函数LEN()辅助使用可以完成。综合上述分析,可以通过下述操作,完成形如1978-12-24样式的出生年月日自动提取: 假如身份证号数据在A1单元格,在B1单元格中编辑公式 =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&M ID(A1,11,2),MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1, 13,2)) 回车确认即可。 如果只要“年-月”格式,公式可以修改为 =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2),MID(A 1,7,4)&"-"&MID(A1,11,2))

第二代身份证号码提取出生年月日的公式

1、第二代身份证号码提取出生年月日的公式: =MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2) 注:A是列,1是行,&在数字键7的上方。 2、第二代身份证号码提取性别男、女的公式: =IF(MOD(MID(A1,17,1),2),"男","女") 注:A是列,1是行。 3、excel用身份证号算年龄的工式 比如身份证号保存在a1单元格,那么可以使用=mid(a1,7,4)来取出出生年,再用当前年份减去这个就是年龄了。 4、提取身份证出生年月 ="19"&MID(B1,9,2)&"年"&MID(B1,11,2)&"月"&MID(B1,13,2)&"日" 5、提取身份证年龄 =YEAR(NOW())-YEAR(IF(LEN(B1)=18,DATE(MID(B1,7,4),MID(B1,11,2),M ID(B1,13,2)),DATE(MID(B1,7,2),MID(B1,9,2),MID(B1,11,2)))) 6、提取身份证性别 =IF(LEN(B1)=15,IF(MOD(MID(B1,15,1),2)=1,"男","女"),IF(MOD(MID(B1,17,1),2)=1,"男","女")) 7、公式内的“B1”代表的是输入身份证号码的单元格。 Excel自动提取身份证中生日和性别以及年龄 (注意:以B2单元格中是18位身份证号为例) 一、提取出生日期的输入公式 =MID(B2,7,4)&"年"&MID(B2,11,2)&"月"&MID(B2,13,2)&"日" 二、判断性别“男女”的输入公式

=IF(MID(B2,17,1)/2=TRUNC(MID(B2,17,1)/2),"女","男") 三、利用身份证号码求年龄 =IF(B2="","",DATEDIF(TEXT((LEN(B2)=15)*19&MID(B2,7,6+(LEN (B2)=18)*2),"#-00-00"),TODAY(),"y")) 八、计算年龄的公式? datedif(开始日期,结束日期,"M") 九、用公式计算最大年龄? max(D3:D21) 十、用公式计算25--35岁之间的人数? =COUNTIFS(D3:D21,">"&25,D3:D21,"<"&35) 十一、计算25岁以下的人数? =COUNTIF(D3:D21,">"&25) 十二、计算25岁以下人数的比例? =COUNTIF(D3:D21,">"&25)/count(D3:D21) 十三、用excel做表输入年月日,可以变成例如1986-01-01的格式吗?能的话怎么变? 先选中单元格,鼠标右击,“设置单元格格式”,“数字”,“自定义”,在类型处输入 e-mm-dd 确定 十四、1.自动录入性别: “=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))” if假如(len(C2)得到C2的字符长度等于15,[15时mod除以2的余数(取mid(C2单元格,第15个的,1个字符),除以2)],[不等于15条

身份证号码校验实例

身份证号码校验实例 身份证号码是按照一定规律编制的,是个人身份的有效证明,每个人只有一个号码,且不会重复,因而被各单位各部门广泛应用在相关名册中。在大量的身份证号码录入过程中,由于抄写或录入等原因,可能会弄错了某位数字,如果录错了任何一位数字,计算出来的校验码就不一样。根据这一特点,本函数可以对已录入的大批量身份证号码进行校验,如果校验未通过,则说明你录入的号码中必定是某位数字错了,应及时更正,以保证身份证号码正确有效,如果录入的是第一代15位身份证号码,本函数将返回18位号码,使身份证号码保持统一的位数。 代码如下: Function IDcheck(ID) '身份证号码校验函数 Dim s, iAs Integer Dim e, z As String Part1: '----------------------------身份证号码合法性检查--------------------------------------- If Not (Len(ID) = 18 Or Len(ID) = 15) Then '位数检验 IDcheck = "位数错误" Exit Function Else If Len(ID) = 15 Then ID = Left(ID, 6) & "19" & Right(ID, 9)

If IsNumeric(Left(ID, 17)) = False Or InStr(ID, ".") > 0 Then '字符检验 IDcheck = "字符错误" Exit Function End If On Error Resume Next '日期检验 If DateValue(Mid(ID, 7, 4) & "-" & Mid(ID, 11, 2) & "-" & Mid(ID, 13, 2)) < 1 Or _ DateValue(Mid(ID, 7, 4) & "-" & Mid(ID, 11, 2) & "-" & Mid(ID, 13, 2)) > Date Then IDcheck = "日期错误" Exit Function End If End If Part2: '-----------------------------校验码的生成及检查---------------------------------------- s = 0 For i = 1 To 17 s = s + Val(Mid(ID, 18 - i, 1)) * (2 ^ i Mod 11)

身份证号码第十八位效验码的计算方法

身份证号码第十八位效验码的计算方法- godson_h的专栏- CSDN 博客 默认分类2010-04-10 07:56:04 阅读141 评论0 字号:大中小订阅 身份证号码第十八位效验码的计算方法 关于身份证第18是怎么计算的,原理如下:根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 地址码(身份证前六位)表示编码对象常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到这个网站https://www.sodocs.net/doc/7115521666.html,/tjbz/index.htm 查询到最新的县及县以上的行政编码资料。) 生日期码(身份证第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。 顺序码(身份证第十五位到十七位)为同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。 校验码(身份证最后一位)是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。 第十八位数字的计算方法为: 1.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 2.将这17位数字和系数相乘的结果相加。 3.用加出来和除以11,看余数是多少? 4余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为 1 0 X 9 8 7 6 5 4 3 2。 5.通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。 例如:某男性的身份证号码是340524************。我们要看看这个身份证是不是合法的身份证。 首先:我们得出,前17位的乘积和是189 然后:用189除以11得出的结果是17 + 2/11,也就是说余数是2。 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

身份证号码举例

身份证号码举例 身份证整个号码的含义是什么? 18位身份证号码各位的含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-14位出生年月日,比如19670401代表1967年4月1日; 15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数; 18位为校验码,0-9和X。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,计算的结果是0-10,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马 数字的10,用X来代替10。 举例: 130503 19670401 0012这个身份证号的含义: 13为河北,05为邢台,03为桥西区,出生日期为1967年4月1日,顺序号为001,2为校验码。 15位身份证号码各位的含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-12位出生年月日,比如670401代表1967年4月1日,这是和18位号码的第一个区别; 13-15位为顺序号,其中15位男为单数,女为双数; 与18位身份证号的第二个区别:没有最后一位的校验码。 举例: 130503 670401 001的含义; 13为河北,05为邢台,03为桥西区,出生日期为1967 年4月1日,顺序号为001。 Excel身份证号码校验实例 身份证号码是按照一定规律编制的,是个人身份的有效证明,每个人只有一个号码,且不会重复,因而被各单位各部门广泛应用在相关名册中。在大量的身份证号码录入过程中,由于抄写或录入等原因,可能会弄错了某位数字,如果录错了任何一位数字,计算出来的校验码就不一样。根据这一特点,本函数可以对已录入的大批量身份证号码进行校验,如果校验未通过,则说明你录入的号码中必定是某位数字错了,应及时更正,以保证身份证号码正确有效,如果录入的是第一代15位身份证号码,本函数将返回18位号码,使身份证号码保持 统一的位数。

如何用EXCEL提取身份证号的出生日期并计算年龄

如何用EXCEL提取身份证号的出生日期并计算年龄 身份证号码的数字都有其具体的意义,从这些数字中可以获得该号码所对应人员的出生户籍地、出生日期、性别等基本信息。利用EXCEL函数,可以很方便的提取身份证号码中的出生日期信息,并计算出年龄。 工具/原料 ?电脑 ?OFFICE2003版或其他更高版本 方法/步骤 1.身份证号码的结构和意义:(1)前6位是地址码,一般为出生上户口的 时候户籍地的代码;(2)第7至第14位是出生日期码,是按年月日排列的; (3)第15至第17位是顺序码,是由公安机关编订的号码,用来区别同一户

籍地同年同月同日生的人,其中第17位是性别信息,奇数为男性,偶数是女性;(4)第18位即最后一位是校验码,由前面17位数字根据全国同一的算法进行计算得出。 2.打开示例EXCEL文件,该表有4个栏目:身份证号、姓名、出生日期、 年龄。出生日期和年龄需要通过EXCLE进行提取和计算,该2列的单元格格式为“常规”格式。

3.提取出生日期需要使用的函数有两个,一个是DATE函数,一个是MID 函数。DATE函数的结构为DATE(year,month,day),其作用是将提取的数字变为日期格式进行显示。MID函数的结构为MID(text, start_num, num_chars),其作用是从字符串中提取指定位数的字符,其中text是需要提取的字符所在的字符串,start_num是需要提取的字符在该字符串中的起始位置,num_chars是需要提取的字符的位数。

4.在C3单元格输入公式 “=DATE(MID(A3,7,4),MID(A3,11,2),MID(A3,13,2))”并下拉,其中MID(A3,7,4)用于提取年份,MID(A3,11,2)用于提取月份,MID(A3,13,2)用于提取日期。 5.不需要精确到日期的年龄计算可以直接用需计算的年份减身份证号的年 份来得出。如要算所有人在2016年时的年龄,在C3单元格输入公式“=2016- MID(A3,7,4)”即可。

net实现中国身份证号码验证源码

.net实现中国身份证号码验证源码 using System; /// /// Summary descr ip tion for IDCardValid /// public cl as s IDCardValid { public IDCardValid() { // // TODO: Add constructor logic here // } /// /// 验证身份证号码 /// /// 身份证号码 /// 验证成功为True,否则为False public static bool CheckIDCard(string Id) { if (Id.Length == 18) { bool check = CheckIDCard18(Id); return check; } else if (Id.Length == 15) { bool check = CheckIDCard15(Id); return check; } else { return false; } } #region 身份证号码验证 /// /// 验证15位身份证号 /// /// 身份证号 /// 验证成功为True,否则为False private static bool CheckIDCard18(string Id) { long n = 0; if (long.TryParse(Id.Remove(17), out n) == false || n < Math.Pow(10, 16) || long.TryParse(Id.Replace('x', '0').Replace('X', '0'), out n) == false) { return false;//数字验证 } string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x6 1x14x32x41x50x62x15x33x42x51x63x21x34x43x52 x64x65x71x81x82x91"; if (address.IndexOf(Id.Remove(2)) == -1) { return false;//省份验证 } string birth = Id.Substring(6, 8).Insert (6, "-").Insert(4, "-"); DateTime time = new DateTime(); if (DateTime.TryParse(birth, out time) == false) { return false;//生日验证 } 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(','); char[] Ai = Id.Remove(17).ToCharArray(); int sum = 0; for (int i = 0; i < 17; i++) { sum += int.Parse(Wi[i]) * int.Parse(Ai[i].ToString()); } int y = -1; Math.DivRem(sum, 11, out y); if (arrVarifyCode[y] != Id.Substring(17, 1).ToLower()) { return false;//校验码验证 } return true;//符合GB11643-1999标准 } /// /// 验证18位身份证号 /// /// 身份证号 /// 验证成功为True,否则为False private static bool CheckIDCard15(string Id) { long n = 0; if (long.TryParse(Id, out n) == false || n < 1

身份证的编码规则

身份证编码规则生活常识 一、身份证号码执行标准:18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。 二、编码规则:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下: 1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。 2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别 用4位、2位(不足两位加0)、2(同上)位数字表示,之间不用分隔符。 3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 4.校验码(R),一位数字,通过前17位数字根据一定计算得出。 三、关于地址码含义的详细解释: 身份证前六位是地区代码,我们用ABCDEF表示。 代码的解释规则如下:

A:国内区域 1 华北三省二市 2 东北三省 3 华东六省一市 4 华南六省 5 西南四省一市 6 西北五省 7 台湾 8 港澳 B(或者说是AB,就是前2位):省(直辖市,自治区,特别行政区)代码 按照A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。 具体省(直辖市,自治区,特别行政区)代码如下: 11-15 京 津冀 晋 蒙 21-23 辽 吉黑

身份证校验码的解释

身份证校验码的解释 新居民身份证的号码是按照国家的标准编制的,由18位组成:前六位为行政区划代码,第七至第十四位为出生日期码,第15至17位为顺序码,第18位为校验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。 身份证中第十八位数字的计算方法为: 1.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。 2.将这17位数字和系数相乘的结果相加。 3.用加出来和除以11,看余数是多少? 4余数只可能有0 、1、2、3、4、5、6、7、8、9、10这11个数字。其分别对应的最后一位身份证的号码为1、0、X、9、8、7、6、5、4、3、2。 5.通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。 例如:某男性的身份证号码是340524************。我们要看看这个身份证是不是合法的身份证。 首先:我们得出,前17位的乘积和是189 然后:用189除以11得出的结果是17 + 2/11,也就是说余数是2。 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

这里面说的很清楚了,最后一位是用来辨别身份证真假的一种办法。而不是同年同月同日生的人的识别码。 贴个JA V A实现的校验算法 public static char doV erify(String id); { char pszSrc[]=id.toCharArray();; int iS = 0; int iW[]={7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; char szVerCode[] = new char[]{'1','0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}; int i; for(i=0;i<17;i++); { iS += (int);(pszSrc-'0'); * iW; } int iY = iS%11; return szVerCode[iY]; } =IF(LEN(A101)=15,REPLACE(A101,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLAC E(A101,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A101 excel计算最后一位的公式,也就是个校验码而已

身份证号码计算年龄

在电子表格中,如何设置公式通过身份证号码计算出年龄。 比如在a列中输入身份证号码,在b列置换出出生年月,c列计算出周岁5222428198602113112 1986-02-11 24 最佳答案 设A1文本格式的18位身份证号,B1输入如下公式,即可算出当天的年龄. =YEAR(TODAY()-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))-1900&"岁"&MONTH(TODAY()-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))-1&"月"&DAY(TODAY()-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))&"天" 如要算指定日期的年龄,则设A1文本格式的18位身份证号,B1为指定日期,在C1输入公式如下: =YEAR(B1-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))-1900&"岁 "&MONTH(B1-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))-1&"月 "&DAY(B1-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))&"天" 或 根据身份证号码(15位和18位通用)自动提取性别和出生年月的自编公式,供需要的网友参考: 说明:公式中的B2是身份证号 1、根据身份证号码求性别: =IF(LEN(B2)=15,IF(MOD(VALUE(RIGHT(B2,3)),2)=0,"女","男 "),IF(LEN(B2)=18,IF(MOD(VALUE(MID(B2,15,3)),2)=0,"女","男"),"身份证错")) 2、根据身份证号码求出生年月: =IF(LEN(B2)=15,CONCATENATE("19",MID(B2,7,2),".",MID(B2,9,2)),IF(LEN( B2)=18,CONCATENATE(MID(B2,7,4),".",MID(B2,11,2)),"身份证错")) 3、根据身份证号码求年龄: =IF(LEN(B2)=15,year(now())-1900-VALUE(MID(B2,7,2)),if(LEN(B2)=18,year( now())-VALUE(MID(B2,7,4)),"身份证错")) 4、假设身份证号在A2,在B2单元格输入公式:其中2011改为当前年: =2011-IF(LEN(A2)=18,MID(A2,7,4),"19"&MID(A2,7,2)) 5、假设身份证号在A2中,则可用下面的公式算出其周岁年龄: =DATEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,(LEN(A2)=18)*2+6),"#-00-00") ,TODAY(),"y")

EXCEL利用身份证号码计算年龄以及年龄分段的技巧

在EXCEL中如何利用身份证号码计算出生年月年龄及性别 1、身份证号码简介(18位): 1~6位为地区代码;7~10位为出生年份;11~12位为出生月份;13~14位为出生日期;15~17位为顺序号,并能够判断性别,奇数为男,偶数为男;第18位为校验码。 2、确定“出生日期”: 18位身份证号码中的生日是从第7位开始至第14位结束。提取出来后为了计算“年龄”应该将“年”“月”“日”数据中添加一个“/”或“-”分隔符。 ①正确输入了身份证号码。(假设在D2单元格中) ②将光标定位在“出生日期”单元格(E2)中,然后在单元格中输入函数公式 “=MID(D2,7,4)&"-"&MID(D2,11,2)&"-"&MID(D2,13,2)”即可计算出“出生日期”。 关于这个函数公式的具体说明:MID函数用于从数据中间提取字符,它的格式是:MID (text,starl_num,num_chars)。 Text是指要提取字符的文本或单元格地址(上列公式中的D2单元格)。 starl_num是指要提取的第一个字符的位置(上列公式中依次为7、11、13)。 num_chars指定要由MID所提取的字符个数(上述公式中,提取年份为4,月份和日期为2)。 多个函数中的“&”起到的作用是将提取出的“年”“月”“日”信息合并到一起,“/”或“-” 分隔符则是在提取出的“年”“月”“日”数据之间添加的一个标记,这样的数据以后就可以作为日期类型进行年龄计算。操作效果如下图:

3、确定“年龄”: “出生日期”确定后,年龄则可以利用一个简单的函数公式计算出来了:将光标定位在“年龄”单元格中,然后在单元格中输入函数公式“=INT((TODAY()-E2)/365)”即可计算出“年龄”。 关于这个函数公式的具体说明: ①TODAY函数用于计算当前系统日期。只要计算机的系统日期准确,就能立即计算出当前的日期,它无需参数。操作格式是TODAY()。 ②用TODAY()-E2,也就是用当前日期减去出生日期,就可以计算出这个人的出生天数。 ③再除以“365”减得到这个人的年龄。 ④计算以后可能有多位小数,可以用【减少小数位数】按钮,将年龄的数值变成“整数”,也可在公式= (TODAY()-E2)/365中再嵌套一个“INT”函数取整数,即 “ =INT((TODAY()-E2)/365)”,这样就会自动将后面的小数去掉,只保留整数部分。操作效果如下图: 还有一种函数(datedif)可以解决这个问题:这个函数用于计算两个日期之间的天数、月数或年数。 语法:DATEDIF(start_date,end_date,unit) start_date为一个日期,它代表时间段内的第一个日期或起始日期。 end_date为一个日期,它代表时间段内的最后一个日期或结束日期。

在excel中巧妙运用身份证号码输入身份证号如何做到自动显示姓别_年龄及出生年月日

1、在excel中输入身份证号如何做到自动显示姓别,年龄及出生年月日 15位和18位的身份证号都合适的了。设内容如下: ........A列......B列......C列......D列.... 1 身份证号性别出生年月年龄 2(输入身份证号) 算年龄的: =IF(OR(LEN(A2)=15,LEN(A2)=18),RIGHT(IF(IF(LEN(A2)=15,MID(A2,9,2),MID(A2,1 1,2))*100+IF(LEN(A2)=15,MID(A2,11,2),MID(A2,13,2))>MONTH(TODAY())*100+DAY (TODAY()),YEAR(TODAY())-IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2))-1,YEAR(TOD AY())-IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2))),2),"证号错误") 算性别的: =IF(LEN(A2)=15,(IF(OR(ABS(RIGHT(A2))=1,ABS(RIGHT(A2))=3,ABS(RIGHT(A2))=5, ABS(RIGHT(A2))=7,ABS(RIGHT(A2))=9),"男","女 ")),(IF(OR(ABS(MID(A2,17,1))=1,ABS(MID(A2,17,1))=3,ABS(MID(A2,17,1))=5,AB S(MID(A2,17,1))=7,ABS(MID(A2,17,1))=9),"男","女"))) 算出生年月的: =DATE(IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2)),IF(LEN(A2)=15,MID(A2,9,2),MI D(A2,11,2)),IF(LEN(A2)=15,MID(A2,11,2),MID(A2,13,2))) 【身份证信息提取】 从身份证号码中提取出生年月日 =TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")+0 =TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")*1 =IF(A2<>"",TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00")+0,) 显示格式均为yyyy-m-d。(最简单的公式,把单元格设置为日期格式) =IF(LEN(A2)=15,"19"&MID(A2,7,2)&"-"&MID(A2,9,2)&"-"&MID(A2,11,2),MID(A2,7, 4)&"-"&MID(A2,11,2)&"-"&MID(A2,13,2)) 显示格式为yyyy-mm-dd。(如果要求为“1995/03/29”格式的话,将”-” 换成”/”即可)=IF(D4="","",IF(LEN(D4)=15,TEXT(("19"&MID(D4,7,6)),"0000年00月00日"),IF(LEN(D4)=18,TEXT(MID(D4,7,8),"0000年00月00日")))) 显示格式为yyyy年mm月dd日。(如果将公式中“0000年00月00日”改成“0000-00-00”,则显示格式为yyyy-mm-dd) =IF(LEN(A1:A2)=18,MID(A1:A2,7,8),"19"&MID(A1:A2,7,6)) 显示格式为yyyymmdd。 =TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")+0

身份证的编码结构

身份证号码共18位:AAAAAABBBBBBBBCCCD 1、号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 2、地址码(前六位数) 表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。 3、出生日期码(第七位至十四位) 表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。 4、顺序码(第十五位至十七位) 表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 5、校验码(第十八位数) 作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。 校验码计算方式: 计算方法编辑 1、将前面的身份证号码17位数分别乘以不同的系数。第i位对应的数为[2^(18-i)]mod11。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ; 2、将这17位数字和系数相乘的结果相加; 3、用加出来和除以11,看余数是多少?; 4、余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2; 5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2; 例如:某男性的身份证号码是340524************。我们要看看这个身份证是不是合法的身份证。 首先:我们得出,前17位的乘积和是189 然后:用189除以11得出的结果是17 + 2/11,也就是说余数是2。 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

身份证号码校验

Visual C++范例开发大全目录Mylaf 2012-10-23 第1篇VC++入门与基本文档视图 第1章Visual C++ 6.0 MFC程序设计快速入门 2 1.1 Visual C++ 6.0开发环境简介2 1.2 创建Visual C++ 6.0应用程序3 实例001 创建第一个MFC应用程序 3 实例002 创建第一个C++应用程序 4 第2章文档视图应用程序实例6 2.1 窗体操作6 实例003 实现启动时无子窗口的MDI程序 6 实例004 实现MDI应用程序启动时子窗口默认最大化7 实例005 MDI应用程序启动时主窗口默认最大化8 实例006 具有图片背景的MDI主窗口9 实例007 全屏显示的窗体12 实例008 创建带滚动条的窗体15 实例009 窗体拆分16 实例010 始终置顶的SDI程序17 实例011 不可移动的窗体18 实例012 创建不可改变大小的SDI窗口19 实例013 动态设置窗口位置和大小20 实例014 保存窗口状态21 实例015 双击主窗口弹出“打开”对话框23 2.2 标题栏25 实例016 获取标题栏高度25 实例017 获取标题栏上按钮的尺寸26 实例018 定制标题栏文字27 实例019 添加标题栏右键菜单项28 实例020 屏蔽标题栏右键系统菜单及隐藏按钮29 实例021 禁用标题栏上的最大化、最小化和关闭按钮30 实例022 显示和隐藏标题栏31 2.3 菜单32 实例023 获取菜单栏高度32 实例024 启用和禁用菜单33 实例025 动态添加菜单35 实例026 带单选标记的菜单36 实例027 复选标记的菜单38 实例028 带图标菜单的SDI程序39 实例029 带图标菜单的MDI 40 实例030 位图菜单41 实例031 创建客户区右键菜单43 实例032 隐藏和显示菜单栏44 实例033 为应用程序添加多语言支持45 2.4 工具栏48 实例034 工具栏按钮的添加、删除和分组48 实例035 不能停靠的工具栏48 实例036 下压式工具栏按钮49 实例037 给工具栏添加图像背景50 实例038 动态隐藏和显示工具栏51 2.5 状态栏52 实例039 显示和隐藏状态栏52 实例040 带进度条的状态栏53 实例041 在状态栏上加载图像54 实例042 滚动字幕的状态栏56 第3章对话框应用实例58 3.1 对话框界面58 实例043 设置对话框应用程序窗口启动位置58 实例044 半透明对话框59 实例045 创建不规则对话框应用程序60 实例046 拖动没有标题栏的对话框61 实例047 实现收缩对话框应用程序62 实例048 基于对话框的托盘程序64 实例049 为对话框应用程序添加菜单栏66 实例050 带有工具栏的对话框应用程序67 实例051 为对话框应用程序添加右键菜单68 实例052 模式对话框与非模式对话框69 实例053 属性页对话框71 实例054 向导式对话框72 实例055 为对话框应用程序添加启动界面73 实例056 为对话框应用程序添加百叶窗的启动界面76 3.2 通用对话框77 实例057 文件打开对话框78 实例058 在程序启动时弹出文件打开对话框79 实例059 在文件打开对话框中预览图片80 实例060 文件保存对话框81 实例061 选择文件夹对话框82 实例062 字体对话框84 实例063 颜色对话框86 实例064 查找与替换对话框87 第4章控件应用实例89 4.1 常见控件89 实例065 图文按钮89 实例066 具有随机图片背景的EditBox控件90 实例067 使用List Box显示系统逻辑磁盘驱动器列表92 实例068 利用列标题对列表视图进行数据排序93 实例069 使用Static Text控件显示当前系统时间95 实例070 使用Data Time Picker控件调整系统时间96 实例071 使用Combo Box控件控制字体大小97 实例072 使用Rich Edit控件显示文本文件98 实例073 使用Tree Control控件显示文件目录100 实例074 位图进度条102 实例075 使用Progress控件实现文字进度条103 实例076 使用Static Text控件显示当前时间104 实例077 使用Picture Box显示动态打开图像106 实例078 使用Group Box控件对控件分组107 实例079 使用Check Box实现多选109 实例080 使用Radio Button实现单选110 实例081 HorizontalScrollBar,VerticalScrollBar滚动条111

相关主题