怎样转换str类型到int?请看具体的问题!根据身份证算年龄!(20分)

  • 主题发起人 主题发起人 sohuandsina
  • 开始时间 开始时间
S

sohuandsina

Unregistered / Unconfirmed
GUEST, unregistred user!
dbedit1.text内容为str类型的身份证号码字符串,
比如:340821198201090834
我当初没有设置为整形的。我现在要根据身份证号码。取得出生日子。就是上面字符串中
的1982,并转换为整形的。
然后取得现在的时间。比如2002。两着相减就是年龄。我应该怎么办??
请写点给我看看。好吗?
 
不同的身份证,号码不一样的。你给出的是最新的身份证号码,可以前的号码呢?
你可以用copy实现
如上得号码可以这样
tmpstr := copy(dbedit1.text,7,4);
myyear := strtoint(tmpstr);
如果是原来的身份证号要根据实际情况
好像这样可以
tmpstr := copy(dbedit1.text,7,2);
myyear := 1900 + strtoint(tempstr);
 
var
a:string;
b:integer;
a:=copy('340821198201090834',7,4);
try
b:=strtoint(a);
//得到1982
except
end;

然后你在相减就会得到年龄
 
StrToInt(copy(Edit1.Text,7,4)) 得到1981
now就是现在,
用DecodeDate(看看帮助)取得2002。
 
old:=copy(dbedit1.text,7,4)取出生年份
 
if length(trim(dbedit1.text)) = 15 then
old := strtoint(copy(trim(dbedit1.text), 7, 2)) + 1900
else
old := strtoint(copy(trim(dbedit1.text), 7, 4));
年龄有实龄和虚龄之分!
 
现在的身份证有很多种,你得根据种类取出生日期所在的位置
birth := StrToInt(copy(Edit1.Text,7,4)) //这个7的的数字是可变的
var
Present: TDateTime;
Year, Month, Day, Hour, Min, Sec, MSec: Word;
begin
birth := StrToInt(copy(Edit1.Text,7,4)) ;
Present:= Now;
DecodeDate(Present, Year, Month, Day);
age := year-birth;
//年龄
end;
 
同意xujinlong的,
嘿嘿,大家的方法都一样啊,
 
国内的身份证号就两种,一个15位,一个18位
稍稍判断一下就行了。
 
后退
顶部