CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

菜鸟请教ASP问题。

楼主gdcba(gdcba)2003-12-01 12:56:44 在 Web 开发 / ASP 提问

本人想做一个根据身份证号码求出年龄和出生年月日的程序,只是不知要怎么做。谢谢各位。 问题点数:50、回复次数:15Top

1 楼lovehwq21(努力学Brio)回复于 2003-12-01 13:03:42 得分 0

根据位数做,比如:7到10是出生日期,就用  
  str   =   身份证  
  stemp   =   mid(str,7,10)  
  stemp就是出生的年份了,依此类推Top

2 楼wlm_lm(网络服务器)回复于 2003-12-01 13:04:02 得分 0

身份证从七位开始的后8位数是出生的年月日  
   
  511324   1983   02   261XXX  
   
  1983   02   26为出生日期  
  可以用mid(xx,7,8)取出日期,再分解出年         月         日       即可。测试通过。Top

3 楼alexzhang00(三角猫)回复于 2003-12-01 13:08:36 得分 10

<%  
  IDCardNum   =   "123431198004238977"  
  birthDate   =   Mid(IDCardNum,7,8)'出生日期  
  birthDate   =   left(birthDate,4)   &   "-"   &   mid(birthdate,5,2)   &   "-"   &   right(birthDate,2)  
  age   =   DateDiff("yyyy",CDate(birthDate),date)'   年龄  
  %>Top

4 楼seayc(seayc)回复于 2003-12-01 13:09:32 得分 0

就是一个减法问题:  
  以15位为例  
  提出来第第7位和第8位用   103-这两个数就是年龄  
  出生年月日就是Response       7   8   9   10   11   12   这些位就好了Top

5 楼13617650029(酒瓶子)回复于 2003-12-01 13:14:00 得分 0

要写两种情况  
  因为很多人用的是12位的数字的身份证  
  所以先判断身份证号是否超过12位  
  超过12位以15位方法计算  
  Top

6 楼monkeys(Myron.Liu)回复于 2003-12-01 13:15:03 得分 0

希望对你有帮助:  
   
  根据位数做  
  str   =   身份证  
  int   len=len(str)  
  '如果身份证为18位  
  if(len=18)   then  
    strYear   =   mid(str,7,10)  
    strMonth=mid(str,11,12)  
    strDay=mid(str,13,14)  
  '如果身份证为旧的15位  
  else  
    strYear=mid(str,7,8)  
    strMonth=mid(str,9,10)  
    strDay=mid(str,11,12)  
  end   if  
  stemp就是出生的年份了,依此类推  
  Top

7 楼shleo(sky)回复于 2003-12-01 13:15:58 得分 0

晕  
  楼上的是12位的身份证?  
  应该是分为15位的和18位的Top

8 楼pdgzzgx(火速空间(进攻.net))回复于 2003-12-01 13:30:01 得分 10

就是啊,应该先求出身份证的长度,然后在用stemp   =   mid(str,7,10)  
  求出生日。如果是15为。那么就应该是stemp=mid(str,6,9)Top

9 楼freeland2008(终极猎人)回复于 2003-12-01 13:42:16 得分 0

对对,Len   可以求长度Top

10 楼gdcba(gdcba)回复于 2003-12-01 14:12:45 得分 0

谢谢各位,只是我还是有点不太明白。Top

11 楼shleo(sky)回复于 2003-12-01 14:24:50 得分 20

sub   birthday()  
      lenth=len(trim(strCard))  
      if   (lenth=18)   then  
            strYear   =   mid(str,7,10)  
            strMonth=mid(str,11,12)  
            strDay=mid(str,13,14)  
      '如果身份证为旧的15位  
      else  
            strYear=mid(str,7,8)  
            strYear="19"&strYear            
            strMonth=mid(str,9,10)  
            strDay=mid(str,11,12)  
      end   if  
  end   sub  
  Top

12 楼gdcba(gdcba)回复于 2003-12-01 14:50:51 得分 0

有点明白了,真是感激不尽。可是哪个年龄要怎么算出来啊。Top

13 楼monkeys(Myron.Liu)回复于 2003-12-02 10:34:08 得分 10

to:shleo(sky)   (   )    
  我写的不是12位的,你仔细看清楚了?  
   
  你先求出出生年:  
   
  strYear  
   
  求算年龄:  
  <%  
  strToYear=left(now,4)//今年的年份  
  strAge=strToYear-strYear//年龄  
  %.  
   
  希望对你有帮助Top

14 楼daherliu(菜鸟)回复于 2003-12-02 23:53:40 得分 0

不错!!看了后,有些收益!!Top

15 楼shleo(sky)回复于 2003-12-03 09:43:13 得分 0

呵呵  
  不好意思  
  monkeys(study.net)  
  我发贴的是说你楼上的~  
  因为当时没有你的贴  
  不好意思了~Top

相关问题

  • asp菜鸟求教
  • 菜鸟ASP问题~~~~~~~~~
  • ASP菜鸟问题
  • 菜鸟(学生)~~~~~asp
  • ASP菜鸟问题~~~
  • 菜鸟求救!关于asp
  • 初入ASP,菜鸟问题
  • 菜鸟的ASP问题
  • 菜鸟ASP问题提问
  • 菜鸟——WIN2000里ASP如何启动?

关键词

  • 位数
  • 身份证
  • mid
  • stryear
  • strday
  • strmonth
  • stemp
  • str
  • 年龄
  • 出生

得分解答快速导航

  • 帖主:gdcba
  • alexzhang00
  • pdgzzgx
  • shleo
  • monkeys

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo