判断字符串第n个字符(20分)

  • 主题发起人 goltiger
  • 开始时间
G

goltiger

Unregistered / Unconfirmed
GUEST, unregistred user!
我是初学者,送分题。
如何通过身份证号(15位)来判断其人的年齡?
请教!
 
用pos()函数,具体使用你可搜索下,全文检索里有很多这样的例子
 
copy('430236801003943',6,6)
 
uses
……,DateUtils,……

function GetAge(sNum:String):Integer;
var
sY,sM,sD:String;
dDate:TDate;
begin
sY := Copy(sNum,7,2);
sM := Copy(sNum,9,2);
sD := Copy(sNum,11,2);
dDate := StrToDate('19' + sY + '-' + sM +'-' + sD);
Result := YearsBetween(Now,dDate);
end;

如:122001800122051
返回23
 
15位身份证的第7-—12位是6位出生年月日(nnyyrr),可用 copy 取年的子串,并用STRTOINT转换成整数后再加上1900或2000,用DECODEDATE取当前日期的年,二者相减即可得出年龄。
 
他们说得对,我看错题了
 
3q 各位!尤其谢谢miaofeng sir
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
955
SUNSTONE的Delphi笔记
S
S
回复
0
查看
776
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
932
SUNSTONE的Delphi笔记
S
顶部