[求助]根据身份证号码位数如何判断年龄和性别?
身份证号码新旧位数不同,如何取号码的位数来判断年龄段和性别?<BR>老号码好像是16位,新号码是18位,且后面是有一个校验位数。<BR>SQL如何写可以同时满足以下条件:<BR>1:年龄段(20-40岁)<BR>2:性别(女性)<BR>[align=right][color=#000066][此贴子已经被作者于2007-9-5 10:48:10编辑过][/color][/align]
顶[em05] <P>我在VB中用过这个,你可以搜索一下。能够正确判断15 18位的身份证号码,包括出生年月日的判断,后4位的判断等等。</P>
回复:(tibetshu)[求助]根据身份证号码位数如何判断...
可以借鉴一下回复:(tibetshu)[求助]根据身份证号码位数如何判断...
package web_service;<br><br>public class javaBean1<br>{<br> private String code_15;//15位身份证号码<br> private String code_18;//18位身份证号码<br> private String sex;//性别<br> private String birthday;//生日<br><br> public javaBean1() {<br> }<br><br> //输入<br> public void inpt(String code2)<br> {<br> //330127860701001<br> this.code_15=code2;<br> this.sex=code2.substring(14);<br> this.birthday=code2.substring(6,8)+"年"+code2.substring(9,10)+"月"+code2.substring(11,12)+"日";<br> }<br> public String Exception_()<br> {<br> if(this.code_15.length()==15)<br> {<br> return "go";<br> }<br> else<br> {<br> return "error";<br> }<br> }<br><br> //输出性别<br> public String outSex()<br> {<br> return this.sex;<br> }<br><br> //输出生日<br> public String outBirthday()<br> {<br> return this.birthday;<br> }<br><br> //输出15位身份证号码<br> public String outCode_15()<br> {<br> return this.code_15;<br> }<br><br> //输出18位身份证号码<br> public String outCode_18()<br> {<br> String num_1_6 = code_15.substring(0, 6);<br> String num_7_15 = code_15.substring(6, code_15.length());<br> this.code_18 = num_1_6 + "19" + num_7_15;<br> int newshuzi[] = new int[17];<br> char[] cha = this.code_18.toCharArray();<br> try {<br> for (int i = cha.length; i >0; i--)<br> {<br> char s=cha[i-1];<br> String shuzi = Character.toString(s);<br> int count = Integer.parseInt(shuzi);<br> newshuzi[17-i] = count;<br><br> }<br> } catch (NumberFormatException ex)<br> {<br> System.out.print(ex.getMessage());<br> }<br> int ss[] = new int[] {2, 4, 8, 5, 10, 9, 7, 3, 6, 1, 2, 4, 8, 5, 10, 9,<br> 7};<br> int sh[] = new int[17];<br> for (int i = 0; i < ss.length; i++)<br> {<br> sh[i] = newshuzi[i] * ss[i];<br> }<br> int Consd = 0;<br> for (int i = 0; i < 17; i++)<br> {<br> Consd += sh[i];<br> }<br> int r = Consd % 11;<br> String t = "";<br> if (r == 0) {<br> t = "1";<br> }<br> if (r == 1) {<br> t = "0";<br> }<br> if (r == 2) {<br> t = "x";<br> }<br> if (r == 3) {<br> t = "9";<br> }<br> if (r == 4) {<br> t = "8";<br> }<br> if (r == 5) {<br> t = "7";<br> }<br> if (r == 6) {<br> t = "6";<br> }<br> if (r == 7) {<br> t = "5";<br> }<br> if (r == 8) {<br> t = "4";<br> }<br> if (r == 9) {<br> t = "3";<br> }<br> if (r == 10) {<br> t = "2";<br> }<br><br> this.code_18 += t;<br> return this.code_18;<br> }<br>}<br><br>[align=right][color=#000066][此贴子已经被作者于2007-10-21 20:09:17编辑过][/color][/align]
页:
[1]
