packagecom.ane56.contract.utils;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.GregorianCalendar;importjava.util.Hashtable;importjava.util.regex.Matcher;importjava.util.regex.Pattern;/*** 身份证号码的格式:610821-20061222-612-X 由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,
* 第18位为校验码。检验码分别是0-10共11个数字,当检验码为“10”时,为了保证公民身份证号码18位,所以用“X”表示。虽然校验码为“X”不能更换,但若需全用数字表示,只需将18位公民身份号码转换成15位居民身份证号码,去掉第7至8位和最后1位3个数码。
* 当今的身份证号码有15位和18位之分。1985年我国实行居民身份证制度,当时签发的身份证号码是15位的,1999年签发的身份证由于年份的扩展(由两位变为四位)和末尾加了效验码,就成了18位。
* (1)前1、2位数字表示:所在省份的代码;
* (2)第3、4位数字表示:所在城市的代码;
* (3)第5、6位数字表示:所在区县的代码;
* (4)第7~14位数字表示:出生年、月、日;
* (5)第15、16位数字表示:所在地的派出所的代码;
* (6)第17位数字表示性别:奇数表示男性,偶数表示女性
* (7)第18位数字是校检码:根据一定算法生成*/
public classIdCardVerification {/**身份证有效*/
public static final String VALIDITY = "0";/**位数不足*/
public static final String LACKDIGITS = "身份证号码长度应该为15位或18位。";/**最后一位应为数字*/
public static final String LASTOFNUMBER = "身份证15位号码都应为数字 ; 18位号码除最后一位外,都应为数字。";/**出生日期无效*/
public static final String INVALIDBIRTH = "身份证出生日期无效。";/**生日不在有效范围*/
public static final String INVALIDSCOPE = "身份证生日不在有效范围。";/**月份无效*/
public static final String INVALIDMONTH = "身份证月份无效";/**日期无效*/
public static final String INVALIDDAY = "身份证日期无效";/**身份证地区编码错误*/
public static final String CODINGERROR = "身份证地区编码错误