tibetshu 发表于 2007-8-17 22:55

[求助]根据身份证号码位数如何判断年龄和性别?

身份证号码新旧位数不同,如何取号码的位数来判断年龄段和性别?<BR>老号码好像是16位,新号码是18位,且后面是有一个校验位数。<BR>SQL如何写可以同时满足以下条件:<BR>1:年龄段(20-40岁)<BR>2:性别(女性)<BR>

谁与争疯 发表于 2007-8-19 10:21

这个首先要了解身份证号码的特征才行,我不太了解。只知道有一段数字是出生日期。

sky_yang_sky 发表于 2007-9-5 10:46

select colunms from tablename where substr(colunms,7,8)&gt;=19670904 and substr(columns,7,8)&lt;=20070904 and substr(columns,18,1)/2=0<br>這個是以新的身份證為基准,字段為你存儲身份證的字段。
[align=right][color=#000066][此贴子已经被作者于2007-9-5 10:48:10编辑过][/color][/align]

ILoveMK 发表于 2007-9-13 23:18

顶[em05]

飙马 发表于 2007-10-10 23:30

<P>我在VB中用过这个,你可以搜索一下。能够正确判断15 18位的身份证号码,包括出生年月日的判断,后4位的判断等等。</P>

比蜗牛快些 发表于 2007-10-21 19:46

回复:(tibetshu)[求助]根据身份证号码位数如何判断...

可以借鉴一下

比蜗牛快些 发表于 2007-10-21 20:01

回复:(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 &gt;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 &lt; ss.length; i++)<br>        {<br>            sh[i] = newshuzi[i] * ss[i];<br>        }<br>        int Consd = 0;<br>        for (int i = 0; i &lt; 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]

编程论坛