Retornar idade!!! (RESOLVIDO!!!)

Mande para cá, aquela sua dica preciosa, aquele truque ou rotina que você criou ou descobriu e que poderá ser de grande ajuda para a comunidade.
Seja nosso colunista de artigos, produza aqui neste local artigos que podem ser de delphi ou de xmaker.
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
Dimmy Angelo
Mensagens: 110
Registrado em: Setembro 26th, 2011, 11:54 am
Contato:

Retornar idade!!! (RESOLVIDO!!!)

Mensagempor Dimmy Angelo » Outubro 5th, 2011, 1:04 pm

Como faço pra retornar a idade em anos apartir da idade de nascimento.

Obrigado, aguardo!!!
Editado pela última vez por Dimmy Angelo em Outubro 9th, 2011, 11:53 am, em um total de 2 vezes.

carlinhos.info
Mensagens: 26
Registrado em: Julho 12th, 2011, 9:46 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Retornar idade!!!

Mensagempor carlinhos.info » Outubro 5th, 2011, 6:02 pm

Colega escreva está function no formulario Rotinas.pas


function CalculaIdade(DataIni, DataFim : TDateTime) : string;
var Idade : String;
iDia, iMes, iAno, fDia, fMes, fAno : Word;
nDia, nMes, nAno : Double;
begin
DecodeDate(DataIni,iAno,iMes,iDia);
DecodeDate(DataFim,fAno,fMes,fDia);
nAno := fAno - iAno;
if nAno > 0 then
if fMes < iMes then nAno := nAno - 1
else if(fMes = iMes)and(fDia < iDia)then nAno := nAno - 1;

if fMes < iMes then
begin
nMes := 12 - (iMes-fMes);
if fDia < iDia then nMes := nMes - 1;
end
else if fMes = iMes then
begin
nMes := 0;
if fDia < iDia then nMes := 11;
end
else if fMes > iMes then
begin
nMes := fMes - iMes;
if fDia < iDia then nMes := nMes - 1;
end;
nDia := 0;

if fDia > iDia then nDia := fDia - iDia;
if fDia < iDia then nDia := (DataFim-IncMonth(DataFim,-1))-(iDia-fDia);
Result := '';
if nAno = 1 then Result := AjustarStr(FloatToStr(nAno),3)+ ' Ano '
else if nAno > 1 then Result := AjustarStr(FloatToStr(nAno),3)+ ' Anos ';

if nMes = 1 then Result := Result + FloatToStr(nMes)+ ' Mês '
else if nMes > 1 then Result := Result + FloatToStr(nMes)+ ' Meses ';

if nDia = 1 then Result := Result + FloatToStr(nDia)+ ' Dia '
else if nDia > 1 then Result := Result + FloatToStr(nDia)+ ' Dias ';
end;

Exemplo: Idade := CalculaIdade(DataNacto, DatadoDia);

Dimmy Angelo
Mensagens: 110
Registrado em: Setembro 26th, 2011, 11:54 am
Contato:

Re: Retornar idade!!!

Mensagempor Dimmy Angelo » Outubro 6th, 2011, 8:51 am


carlinhos.info
Mensagens: 26
Registrado em: Julho 12th, 2011, 9:46 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Retornar idade!!!

Mensagempor carlinhos.info » Outubro 6th, 2011, 1:47 pm

Sim faltou mesmo a rotina para alinhar os resultados numericos.
Caso não queira este alinhamento basta remover a function AjustaStr da Rotina.

function AjustarStr ( str: String; tam: Integer ): String;
begin
while Length ( str ) < tam do
str := ' ' + str;
if Length ( str ) > tam then
str := Copy ( str, 1, tam );
Result := str;
end;

Dimmy Angelo
Mensagens: 110
Registrado em: Setembro 26th, 2011, 11:54 am
Contato:

Re: Retornar idade!!!

Mensagempor Dimmy Angelo » Outubro 7th, 2011, 9:16 am


Dimmy Angelo
Mensagens: 110
Registrado em: Setembro 26th, 2011, 11:54 am
Contato:

Re: Retornar idade!!!

Mensagempor Dimmy Angelo » Outubro 7th, 2011, 9:22 am


Dimmy Angelo
Mensagens: 110
Registrado em: Setembro 26th, 2011, 11:54 am
Contato:

Re: Retornar idade!!!

Mensagempor Dimmy Angelo » Outubro 7th, 2011, 10:00 am

Outra dúvida, como faço para não aparecer 111 antes que seja informada a data de nascimento, quero que aparece em branco ou 0.

Obrigado !!!
Você não está autorizado a ver ou baixar esse anexo.

carlinhos.info
Mensagens: 26
Registrado em: Julho 12th, 2011, 9:46 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Re: Retornar idade!!!

Mensagempor carlinhos.info » Outubro 7th, 2011, 5:21 pm

Voce pode testar o campo e caso ele esteja vazio você coloque Result := '';

if TabGlobal.DFLOW.DATA.Conteudo = Date-Date then Result := '' {ou 'Data não Informada'}
else Result := CalculaIdade(TabGlobal.DFLOW.DATA.Conteudo,DataAtual);


[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable

Voltar para “Colaborações/Dicas, Artigos e Truques”

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes