CardId的计算方法

	// 获取身份证号 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 ;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sinqi_SG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值