最代碼廣告位
啟辰互聯的gravatar頭像
啟辰互聯2013-01-04 12:07:30

18位身份證的最后一位校驗碼生成

18位身份證的最后一位校驗碼生成

//18位身份證:6位行政區域碼+8位出生日期+3位順序碼+1位檢驗碼
//順序碼奇數為男,偶數為女
//根據 ISO 7064:1983.MOD 11-2 校驗碼計算法
//1、根據給定的17位數字,計算其相應的加權因子的乘積的和S
//2、計算 S/11 的余數 T
//3、計算 (12-T)/11 的余數 R
//4、R即為計算得到的校驗碼,如果R=10,這校驗碼位"x",否則為數字R

       //18位身份證:6位行政區域碼+8位出生日期+3位順序碼+1位檢驗碼
       //順序碼奇數為男,偶數為女
       //根據 ISO 7064:1983.MOD 11-2 校驗碼計算法
//1、根據給定的17位數字,計算其相應的加權因子的乘積的和S
//2、計算 S/11 的余數 T
//3、計算 (12-T)/11 的余數 R
//4、R即為計算得到的校驗碼,如果R=10,這校驗碼位"x",否則為數字R
public String getVerify(int[] num17){
       final int[] power = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
	for (int i = 0,sum=0; i < num17.length; i++) {
		sum = sum+num17[i]*power[i];
	}
	int T = sum%11;
	int R = (12-T)%11;
	return R==10?"x":String.valueOf(R);
}
public String getVerify(String num17){
	char[] carr = num17.toCharArray();
	int[] iarr = new int[17];
	for (int i = 0; i < iarr.length; i++) {
		iarr[i] = new Integer(String.valueOf(carr[i]));
	}
	return getVerify(iarr);
}

 


最代碼官方編輯于2017-6-8 21:43:16

打賞

文件名:card.zip,文件大小:0K下載
  • /
    • /card.txt
頂部客服微信二維碼底部
>掃描二維碼關注最代碼為好友掃描二維碼關注最代碼為好友
2008大乐透走势图