Java随机生成18位身份证号
package com.ihome.data;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;
public class CertNoUtil {
// 18位身份证号码各位的含义:
// 1-2位省、自治区、直辖市代码;
// 3-4位地级市、盟、自治州代码;
// 5-6位县、县级市、区代码;
// 7-14位出生年月日,比如19670401代表1967年4月1日;
// 15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数;
// 18位为校验码,0-9和X。
// 作为尾号的校验码,是由把前十七位数字带入统一的公式计算出来的,
// 计算的结果是0-10,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,
// 因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10
public static String getRandomID() {
String id = "";
// 随机生成省、自治区、直辖市代码 1-2
String provinces[] = { "11", "12", "13", "14", "15", "21", "22", "23",
"31", "32", "33", "34", "35", "36", "37", "41", "42", "43",
"44", "45", "46", "50", "51", "52", "53", "54", "61", "62",
"63", "64", "65", "71", "81", "82" };
String province = provinces[new Random().nextInt(provinces.length - 1)];
// 随机生成地级市、盟、自治州代码 3-4
String citys[] = { "01", "02", "03", "04", "05", "06", "07", "08",
"09", "10", "21", "22", "23", "24", "25", "26", "27", "28" };
String city = citys[new Random().nextInt(citys.length - 1)];
// 随机生成县、县级市、区代码 5-6
String countys[] = { "01", "02", "03", "04", "05", "06", "07", "08",
"09", "10", "21", "22", "23", "24", "25", "26", "27", "28",
"29", "30", "31", "32", "33", "34", "35", "36", "37", "38" };
String county = countys[new Random().nextInt(countys.length - 1)];
// 随机生成出生年月 7-14
SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd");
Date beginDate = new Date();
Calendar date = Calendar.getInstance();
date.setTime(beginDate);
date.set(Calendar.DATE,
date.get(Calendar.DATE) - new Random().nextInt(365 * 100));
String birth = dft.format(date.getTime());
// 随机生成顺序号 15-17
String no = new Random().nextInt(999) + "";
// 随机生成校验码 18
String checks[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"X" };
String check = checks[new Random().nextInt(checks.length - 1)];
// 拼接身份证号码
id = province + city + county + birth + no + check;
return id;
}
}
Java随机生成18位身份证号的更多相关文章
- java 随机生成4位随机数
java 随机生成4位的随机数测试类 @org.junit.Testpublic void testRandom(){ String msg="您的注册码为%s,谢谢注册!"; S ...
- java随机生成6位随机数 5位随机数 4位随机数
随机数,应用会相当广,验证数,订单号,流水号拼接. 下面是java随机数生成语句: 生成6位随机数(不会是5位或者7位,仅只有6位): System.+)*)); 同理,生成5位随机数: System ...
- java 随机生成6位短信验证码
生成6位随机数字其实很简单,只需一行代码,具体如下: String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000) ...
- 中国居民18位身份证号验证方法,Java算法实现
public static boolean validate18Idcard(String idcard){ if(idcard == null ) { return false; } if(idca ...
- java实现的18位身份证格式验证算法
公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码.1.地址码表示编码对象常住户口所在县(市. ...
- java 随机生成11位 组合
public static String generate8RateUuid() { String[] chars = new String[] { "a", & ...
- PHP实现15位身份证号转18位
PHP实现15位身份证号转18位 参考博客: 作者:selfimpr626 来源:CSDN (根据身份证号计算年龄,15位身份证号码转18位) 原文:https://blog.csdn.net/wei ...
- php验证18位身份证,准到必须输入正确的身份证号,
/** * 验证18位身份证(计算方式在百度百科有) * @param string $id 身份证 * return boolean */ function check_identity($id=' ...
- Java实现18位身份证校验代码
import java.util.Scanner; /** * 18位身份证校验 * @author [J.H] * */ public class Test { // 身份证校验 public st ...
随机推荐
- spring 静态注入
1.静态注入 在setter 方法修改为非 static , 然后在上面注入即可 @Component public class WeixinConfig { // token public stat ...
- 汤姆大叔 javascript 系列 第20课 最后的5到javascript题目
博客链接:http://www.cnblogs.com/TomXu/archive/2012/02/10/2342098.html 原题: 大叔注:这些题目也是来自出这5个题目的人,当然如果你能答对4 ...
- 关于robotframework,app,appium的xpath定位问题及常用方法
关于类似的帖子好像很多,但是没有找到具体能帮我解决问题的办法.还是自己深究了好久才基本知道app上面的xpath定位和web上的不同点: 先放一个图: A,先说说不用xpath的场景,一般是用于存在i ...
- Linux SVN 命令详解
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain ...
- git error: unable to rewind rpc post data - try increasing http.postBuffer
error: unable to rewind rpc post data - try increasing http.postBuffererror: RPC failed; curl 56 Rec ...
- echarts饼图
1.添加点击事件并跳转到不同的页面 // 路径配置 require.config({ paths: { echarts: 'http://echarts.baidu.com/build/dist/' ...
- Redis启动多端口、运行多实例
默认Redis程序安装在/usr/local/redis目录下: 配置文件:/usr/local/redis/redis.conf,该配置文件中配置的端口为默认端口:6379: Redis的启动命令路 ...
- 《转载》跟我学SpringMVC
在线版目录 第一章 Web MVC简介 第二章 Spring MVC入门 第三章 DispatcherServlet详解 第四章 Controller接口控制器详解(1) 第四章 Controller ...
- Swift3新特性汇总
之前 Apple 在 WWDC 上已将 Swift 3 整合进了 Xcode 8 beta 中,而本月苹果发布了 Swift 3 的正式版.这也是自 2015 年底Apple开源Swift之后,首个发 ...
- 编译器警告:CGContextSaveGState: invalid context 0x0
一.问题描述 下载图片,然后用Quartz2D绘制缩放的图片,运行无法显示图片并且编译器警告: Aug 18 21:41:50 02_计算UITableViewCell的行高[16777] < ...