菜鸟请教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




