/** 15位身份证转18位 */
public String fixPersonIDCode(String personIDCode){
if (personIDCode == null || personIDCode.trim().length() != 15) {
return personIDCode;
}
String id17 = personIDCode.substring(0, 6) + "19"
+ personIDCode.substring(6, 15); // 15为身份证补\'19\'
// char[] code =
// {\'1\',\'0\',\'X\',\'9\',\'8\',\'7\',\'6\',\'5\',\'4\',\'3\',\'2\'};
// //11个
char[] code = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' }; // 11个
int[] factor = { 0, 2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9, 7 }; // 18个;
int[] idcd = new int[18];
int i;
int j;
int sum;
int remainder;
for (i = 1; i < 18; i++)
{
j = 17 - i;
idcd[i] = Integer.parseInt(id17.substring(j, j + 1));
}
sum = 0;
for (i = 1; i < 18; i++)
{
sum = sum + idcd[i] * factor[i];
}
remainder = sum % 11;
String lastCheckBit = String.valueOf(code[remainder]);
return id17 + lastCheckBit;
}
分享到:
相关推荐
"身份证15位转18位的JSP实现方法整理" 身份证号码是一种重要的身份识别号码,在中国大陆地区,每个公民都拥有一个唯一的身份证号码。身份证号码的格式是根据GB11643-1999《公民身份号码》标准规定的,该标准规定了...
### SQL15位和18位公民身份证校验函数知识点详解 #### 一、背景介绍 在进行数据录入时,确保身份证信息的合法性至关重要。不正确的身份证信息将导致数据的有效性和准确性大打折扣。为此,设计了一款专门用于校验15...
- **15位转18位**:将15位身份证号码中的出生年份从两位扩展至四位(19XX),并通过加权求和和模11运算计算出最后一位校验码。 - **18位验证**:验证第18位校验码是否与计算值匹配,如果不匹配,则认为身份证号码...
3. **身份证号码升级**:将15位身份证升级到18位,首先需要保持前6位地区码不变,接下来的7位出生日期码需要扩展到4位年份,例如19XX,然后加上原顺序码和校验码。校验码的计算方法较为复杂,通常涉及到模11的加权...
在这篇文章中,我们将总结 kettle 的脚本,包括身份证 15 位转 18 位,以及各种数据的正则验证。 身份证 15 位转 18 位是 kettle 中的一个常见操作。身份证号码是中国大陆地区的身份证号码,包括 15 位和 18 位两种...
3. **`uptoeighteen` 方法**:将15位身份证号升级为18位。具体做法是,在15位身份证号的基础上添加“19”,并将前6位与后8位连接起来,最后加上通过`getVerify`方法计算得到的校验码。 #### 测试案例 为了验证程序...
15位身份证号码已经逐渐被18位号码取代,18位身份证号码由17位数字和一个校验位组成。这17位数字分别代表出生年月日、性别、地区代码以及顺序号。校验位是通过特定算法计算得出,用于验证身份证号码的正确性。 18位...
18位身份证号码的前6位和中间8位与15位相同,只是在15位的基础上增加了4位,其中第7位到第14位是完整的出生年月日(包括年份),最后一位是校验码。 1. 将18位身份证号码转换为15位: 转换过程主要是去掉最后的4位...
主要介绍了js身份证判断方法支持15位和18位,需要的朋友可以参考下
【身份证号升位的意义】 ...通过PB和ORACLE等工具,我们可以实现身份证号从15位到18位的平滑转换,满足国家法规要求,并确保系统数据的准确性。在实际操作中,还应注意数据安全和隐私保护,遵循相应的法律法规。
中国的身份证号码是18位的,包含了出生日期和性别等个人信息。在这个问题中,我们需要解析身份证号码的第7位到第14位来获得出生年月日,并通过第17位判断性别。以下是详细的步骤和相关知识点: 1. **身份证号码结构...
- 考虑到15位身份证号码的情况,虽然现在18位身份证已经普及,但仍有老版15位号码存在。 - 校验码的验证,以确保身份证号码的合法性。 - 针对籍贯省市的获取,可能需要维护一个静态的行政区划代码库,或者利用网络...
身份证号码分为15位和18位两种格式,其中18位号码是在15位基础上增加了一个4位出生年份以及一位校验码。本文将详细介绍如何使用正则表达式进行身份证号码的有效性和合理性验证。 #### 简单校验:正则表达式的使用 ...
4. **校验码**:第十八位是校验码,用于验证身份证号码的有效性。 #### 校验码计算方法 校验码的计算基于前17位数字,并利用特定的权重因子(2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9, 7)与这些数字相乘...
在Oracle数据库环境中,使用Java实现身份证转换是一种常见的技术需求,特别是在我国进行15位到18位身份证升级的过程中。Oracle数据库作为一个主流的关系型数据库,它提供了丰富的功能支持,包括通过Java来扩展其功能...
本篇文章将详细讲解如何使用JavaScript来实现根据15位或18位身份证号码判断性别和生日。 首先,身份证号码的第17位数字用于判断性别。如果该数字为奇数,则表示该人是男性;如果是偶数,则表示该人是女性。例如,...
身份证号码的前6位代表了行政区划代码,第7位到第14位是出生日期,格式为YYYYMMDD,第15位到第17位是顺序码(奇数分配给男性,偶数分配给女性),最后一位是校验码。因此,提取出生日期的关键就是从身份证号码字符串...
根据描述中的信息,身份证号码分为15位和18位两种形式。其中18位号码是在15位的基础上加入了出生年份的前两位,并在最后增加了校验码。 - **15位号码**: 由行政区划代码(前6位)、出生日期(后6位)组成。 - **18...
在这个项目中,开发者可能实现了将旧版15位身份证号码转换为新版18位身份证号码的功能。18位身份证是中国公民的法定身份证明,包含了出生日期、性别、地区等个人信息,而15位身份证是之前使用的格式,两者通过特定...