// 获取身份证号 conn_id 6位地区编号 birthday 生日 格式 yyyy-mm-dd sex性别 1男 2女
public String makeId(String conn_id,String birthday,String sex) {
String birth[] = birthday.split("-");
int sjs = new Random().nextInt(90)+10;
//System.out.println(sjs);
String id17 ="";
if(sex=="1") {
String js[] = {"1","3","5","7","9"};
int index = new Random().nextInt(5);
//System.out.println(index);
id17 = js[index];
}else {
String js[] = {"2","4","6","8","0"};
int index = new Random().nextInt(5);
id17 = js[index];
}
String idcard = conn_id+birth[0]+birth[1]+birth[2]+String.valueOf(sjs)+id17;
int quan[] = {7 ,9, 10 ,5 ,8 ,4 ,2 ,1 ,6, 3 ,7 ,9, 10 ,5 ,8 ,4, 2};
String next[] = {"1", "0", "X" ,"9", "8", "7" ,"6", "5" ,"4" ,"3" ,"2"};
long he = 0;
for (int i = 0 ;i<17;i++) {
String x = idcard.substring(i, i+1);
he=he+Integer.valueOf(x)*quan[i];
}
int next_index = (int)he%11 ;
String nextone = next[next_index];
idcard = idcard+nextone;
return idcard ;
}
CardId的计算方法
最新推荐文章于 2022-03-29 21:09:35 发布