⑴ 用java從任意給定的身份證號碼中提取此人的出生日期
用Java從任意給定的身份證號碼中提取此人的出生日期,例子如下:
publicclassTestC{
publicstaticvoidmain(String[]args){
//18位的第二代身份版證,出生日期是權從7位到14位是出生日期
Stringstr="450919199903050123";
//字元串截取下標從0開始的
Stringbirthday=str.substring(6,14);
System.out.println(birthday);
}
}
結果:
19990305
⑵ java輸入身份證(18位),輸出年齡。
剛寫出來,其實就是字元串的截取。
package com.swing;
import java.util.Calendar;
import java.util.Timer;
public class NianLing {
public static void main(String[] args) {
String s = "610400199011100000";
s = s.substring(6, s.length()-8);
System.out.println(s);
Calendar cal = Calendar.getInstance();
java.util.Date date = cal.getTime();
String s1 = date.toString();
String s2 = (String) s1.subSequence(s1.length()-4, s1.length());
System.out.println(date);
System.out.println(s2);
Integer int1 = Integer.parseInt(s);
Integer int2 = Integer.parseInt(s2);
Integer age = int2-int1;
System.out.println("age : " + age);
}
}
輸出結果:age:22
1990
Fri Dec 14 23:26:52 CST 2012
2012
age : 22
⑶ 在java中怎麼用String 的方法,截取身份證號碼中的出生日期
static substring方法。你都知道要用String的方法了 就不會去查API嘛
⑷ java校驗身份證號碼,解析出生日期,年齡,身份證是否有效
這種我能想到的就是校驗身份證字元串的位數,寫個正則表達式校驗前面的17位為數字,通過了截取第七位到第15位,為出生日期,年齡也差不多,取系統時間年份與出生年減一下
⑸ java源代碼是給你一個身份證號,通過面板身份證號的輸入,顯示出該身份證主人的出生年月,省份,性別等資料
我當初用struts1和hibernate做了個簡單的!主要的邏輯代碼在下面!資料庫里號碼對應的城市在網上可以查的到
package ;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Expression;
import entity.Shenfenzhen;
public class IdDao {
private static Configuration configuration = new Configuration().configure() ;
private static SessionFactory sessionFactory =configuration.buildSessionFactory();
private static Session session = null;
public Info query(String s){
Info info = null;
StringBuffer stringBuffer = new StringBuffer(s);
if(s.length()==18){
String end = stringBuffer.substring(17);
//System.out.println(end);
if(!end.matches("\\d||x")){
return null;
}
}
else if(s.length()==15){
stringBuffer.insert(6, "19");
stringBuffer.append("3");
}
int i = Integer.parseInt(stringBuffer.substring(0, 6));
//System.out.println(i);
session = sessionFactory.openSession();
Criteria criteria = session.createCriteria(Shenfenzhen.class);
criteria.add(Expression.eq("num", i));
List<Shenfenzhen> list = criteria.list();
String address = null;
try {
address = list.get(0).getAddress();
}catch (Exception e) {
return null;
}
i = Integer.parseInt(stringBuffer.substring(16,17));
String sex = null;
if(i%2==0){
sex = "女";
}else{
sex = "男";
}
//System.out.println(i);
stringBuffer = new StringBuffer(stringBuffer.substring(6, 14));
// stringBuffer.insert(4, "-");
// stringBuffer.insert(7, "-");
//System.out.println(stringBuffer);
String ss = stringBuffer.toString();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
String brithday="";
int year=0;
int month =0;
int day =0;
try {
Date date = dateFormat.parse(ss);
//System.out.println(date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH)+1;
day = calendar.get(Calendar.DAY_OF_MONTH);
brithday = (String)(year + "年" + month + "月" + day + "日");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
info = new Info(address, brithday, sex);
Calendar c = Calendar.getInstance();
int nowYear = c.get(Calendar.YEAR);
int nowMonth = c.get(Calendar.MONTH);
int nowDay = c.get(Calendar.DAY_OF_MONTH);
if(nowYear<year){
info = null;
}else if(nowYear ==year && nowMonth<month ){
info = null;
}else if(nowYear == year && nowMonth==month && nowDay<day){
info = null;
}
closeSession(session);
return info;
}
// public static void main(String[] args){
// IdDao = new IdDao();
// .query("342522998711224513");
// System.out.println("x".matches("\\d||x"));
// }
private void closeSession(Session session){
if(session !=null){
session.close();
}
}
}