如果是15位,则从第7位开始为“年年月月日日”
如果是18位,则从第7位开始为“年年年年月月日日”
然后计算与当前时间的差,这样年龄就出来了
剩下的工作就不用我说了吧^_^
Good Luck !

解决方案 »

  1.   

    15位的最后一位是性别,奇数男 偶数女
    18位的不清楚了 我最后一位是x
    ??我为什么是x?x-man?
      

  2.   

    18 位 最后一个是 校验码。
    http://dev.csdn.net/article/71/71540.shtm
      

  3.   

    这个应该很简单吧,用最基本的就行啊(愚以为):先根据身份证号得到age(这一步你说已经搞定)再来计算:
    <%!
      int thirty=0,thirty_fifty=0,fifty=0;
    %>
    <%
      if(age<30){thirty++;}
      else if(age>=30 and age<50){thirty_fifty++;}
      else{fifty++;}
    %>
    最后怎么处理这三个结果就看你的了(存入文件,存入数据库还是直接显示)。
      

  4.   

    you can at first comp the SHENFENZHENG's number,and look at it,is 15,or 18,and you can write the two class,for example,CHONGZAI in JAVA,of course,you can use the "if" too.
      

  5.   

    问题就在于这样就要一个个检索了
    能否批量在数据库中将这个身份证字段通过计算一个年龄,存在另外一个临时对应表中,然后
    再统计这个对应表的年龄段

    ======================================================
    你可以把年龄存到一个临时表中,也可以写个bean,把age存到Vector或ArrayList中(return Vector),再从Vector中逐个提出再计算。
      

  6.   

    其实很简单,你在数据库中增加一个age字段.
    在jsp页面上,用户只需要输入身份证,并不需要输入年龄
    当用户提交的时候,你需要做两件事情
    1;根据身份证计算出年龄
    2;insert into yourtable(age,...) value(你计算出的年龄,...);
    这样,你做统计的时候,就可以用select count 统计数据了.并且速度非常快.
      

  7.   

    用SQL查询就可以了
    String sql="select * from people where mid(sfzh,7,9)>70";
    或者
    String sql="select * from people where mid(sfzh,7,11)>1970";
      

  8.   

    >>lcllcl987(毛爷爷)  2005-07-14 22:01:00
    其实很简单,你在数据库中增加一个age字段.
    在jsp页面上,用户只需要输入身份证,并不需要输入年龄
    当用户提交的时候,你需要做两件事情
    1;根据身份证计算出年龄
    2;insert into yourtable(age,...) value(你计算出的年龄,...);
    这样,你做统计的时候,就可以用select count 统计数据了.并且速度非常快.
    我同意这个  在输入时 进行计算 然后将生日或者岁数记如数据库 这个方法应该算比较好的了 效率也可以
      

  9.   

    Oracle似乎可以用SQL处理这个问题
    不需要些java程序了
      

  10.   

    就用纯sql就可以了啊~先判断 长度,然后用substr取出来,再分割判断就可以了啊……写成存储过程嘛~这样又快,又简单
      

  11.   

    晕,还是存储过程小弟菜鸟一个,有没有热心人士详细介绍存储过程的操作办法和在JSP里如何代码实现
      

  12.   

    你到论坛切搜索jsp调用存储过程……n多,如果你想知道存储过程怎么写,到oracle子论坛切搜索pl/sql