📄 身份证效检位.txt
字号:
/********************************************************
模块名称:将15位的身份证转换成18位的身份证?输入参数:
类型 变量名 作用
char * sSfz15;
输出参数:
类型 变量名 作用
char * sSfz18;
全局变量:
类型 名称 作用
数据库表:
模块简述:
编写人 :熊晟华
编写单位:厦门建行信息技术部
日 期 :2002/08/31
修改人 :
修改单位:
日 期 :
*********************************************************/
int gh_sfz18to15(sSfz18,sSfz15)
char * sSfz18;
char * sSfz15;
{
char sBuf[29];
char sBuf1[20];
int iYear;
int iRet;
strncpy(sBuf,sSfz18,6);
sBuf[6]='\0';
strncpy(sBuf1,sSfz18+8,9);
sBuf1[9]='\0';
sprintf(sSfz15,"%s%s",sBuf,sBuf1);
return(0);
}
/********************************************************
模块名称:将15位的身份证转换成18位的身份证?输入参数:
类型 变量名 作用
char * sSfz15;
输出参数:
类型 变量名 作用
char * sSfz18;
全局变量:
类型 名称 作用
数据库表:
模块简述:
编写人 :熊晟华
编写单位:厦门建行信息技术部
日 期 :2002/08/31
修改人 : 日 期 : 修改说明
姚雄杰 2003-1-13 去掉原有公函调用
*********************************************************/
int gh_sfz15to18(sSfz15,sSfz18)
char * sSfz15;
char * sSfz18;
{
char sBuf[29];
char sYear[10];
char sXh[10];
char sJym[20];
char sTemp[29];
int iYear;
int iCur;
char sDate[25];
int iRet;
strncpy(sBuf,sSfz15,6);
sBuf[6]='\0';
strncpy(sXh,sSfz15+8,7);
strncpy(sYear,sSfz15+6,2);
sYear[2]='\0';
GetTime(sDate,NULL,NULL);
sDate[4]='\0';
iCur=atoi(sDate);
iYear=atoi(sYear);
if(iYear+2000>=iCur)
iYear=iYear+1900;
else
iYear=iYear+2000;
sprintf(sTemp,"%s%04d%s",sBuf,iYear,sXh);
iRet=gh_scjym_sfz18(sTemp,sJym);
sTemp[17]=sJym[0];
sTemp[18]='\0';
strcpy(sSfz18,sTemp);
return(iRet);
}
/*******************************************************
模块名称:生成18位身份证的校验位
输入参数:
类型 变量名 作用
char * sZjhm
输出参数:
类型 变量名 作用
char * sJym;
全局变量:
类型 名称 作用
数据库表:
模块简述:
编写人 :熊晟华
编写单位:厦门建行信息技术部
日 期 :2002/08/31
修改人 :
修改单位:
日 期 :
*********************************************************/
int gh_scjym_sfz18(sZjhm,sJym)
char * sZjhm;
char * sJym;
{
int iWi[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};
int cDz[]={'1','0','X','9','8','7','6','5','4','3','2'};
int iSum;
int iMod;
int iJym;
int iNum;
int i;
iSum=0;
for(i=0;i<17;i++)
{
if(sZjhm[i]>='0'&&sZjhm[i]<='9')
{
iSum+=(sZjhm[i]-'0')*iWi[i];
}
else
{
/*ERROR1("无效的证件号码[%s]",sZjhm);*/
return(10017);
}
}
iMod=iSum%11;
sprintf(sJym,"%c",cDz[iMod]);
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -