身份证算法15位转换为18位

news/2024/11/30 18:40:53/
public class IdCardTest
{public static void main(String[] args) {//原15位身份证号String idCard15 = "410522930308811";StringBuffer sb = get18IdCard(idCard15);System.out.println(sb);}private static StringBuffer get18IdCard(String idCard) {//将字符串转化为buffer进行操作StringBuffer sb = new StringBuffer(idCard);//身份证最后一位校验码,X代表10(顺序固定)char[] checkIndex = {'1','0','X','9','8','7','6','5','4','3','2'};//前17位的总和int sum = 0;//在第6位插入年份的前两位19sb.insert(6,"19");for (int i = 0; i < sb.length(); i++) {char c = sb.charAt(i);//前17位数字int ai = Integer.valueOf(String.valueOf(c));//前17位每位对应的系数(7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 )int wi = ((int) Math.pow(2, sb.length() - i)) % 11;//总和(每位数字乘以系数再相加)sum = sum +ai * wi;}//总和除以11求余int indexOf = sum % 11;//根据余数作为下表在校验码数组里取值sb.append(checkIndex[indexOf]);return sb;}
}

最后输出结果:410522199303088111


http://www.ppmy.cn/news/726049.html

相关文章

十八岁的天空

走过花季和雨季,我们踏入了人生的18岁.18岁,风华正茂,是个追逐梦想的好时节.18岁的天空,或许很蓝,或许很忧郁.但这都是真实的18岁,是我们实现梦想的最贴切的感受.18岁是人生不可多得的财富,仰望天空,追逐梦想.珍惜每一天,不断努力,写下圆满的句点.感谢18岁的天空,给我追逐梦想的…

15位或18位长度身份证号码JS验证

免责声明&#xff1a;身份证号为随机组合而成&#xff0c;不会涉及任何隐私泄密问题&#xff0c;也非现实生活中真实的身份证号码&#xff1b;身份证号码所属年龄均为18岁以上&#xff0c;均已通过校验。 var IdNum1 “320583198603316426”; // 测试号码1&#xff08;18位&a…

moment.js根据身份证判断是否成年

moment.js中允许传入一串字符传然后变成时间格式 话不多说&#xff0c;直接上代码,因为实在uniapp中使用的&#xff0c;因此加了this var birthDay this.$moment("19990211").format(YYYY-MM-DD) console.log(birthDay) //输出1999-02-11根据这个格式化&#xff0…

如何快速从身份证号码中提取周岁?

今天跟大家分享一下如何快速从身份证号码中提取周岁&#xff1f; 1.点击【DIY工具箱】 2.点击【身份证】选择【提取年龄】 3.勾选【年龄】并设置为【周岁】&#xff0c;然后点击【确定】 ​ 4.最后我们选择一个合适的保存位置即可完成 5.完成效果如下图 ​

学习正则表达式 - 18位身份证号

一、身份证号规则 18位身份号码是特征组合码&#xff0c;由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为&#xff1a;六位数字地址码&#xff0c;八位数字出生日期码&#xff0c;三位数字顺序码和一位校验码。其含义如下&#xff1a; 地址码&#xff1a;表示编码…

计算身份证中的年龄

计算身份证中的年龄 直接在mysql里面计算 #计算 select identity_card,(YEAR(NOW())- SUBSTRING(identity_card,7,4)) from his_declare_people ; #查询 select identity_card from his_declare_people where (YEAR(NOW())- SUBSTRING(identity_card,7,4)) between #{ageID1…

根据身份证号计算周岁年龄

1、测试 import pandas as pd import datetime temp_data110221195404083625 v_start_datetemp_data[6:14] now datetime.datetime.now() now now.strftime(%Y%m%d) v_year_enddatetime.datetime.strptime(now, %Y%m%d).year v_month_enddatetime.datetime.strptime(now, %Y…

15/18位身份证号码正则表达式(详细版)

xxxxxx yyyy MM dd 375 0 十八位 xxxxxx yy MM dd 75 0 十五位 地区&#xff1a;[1-9]\d{5} 年的前两位&#xff1a;(18|19|([23]\d)) 1800-3999 年的后两位&#xff1a;\d{2} 月份&#xff1a;((0[1-9])|(10|11|12)) 天数&#xff1a;(([0-2][1-9…