Guest - Alexandre - Postado Agosto 26, 2004 Denunciar Share Postado Agosto 26, 2004 Como faço para saber quantos anos uma certa pessoa tem, sendo que em um edit tem a data atual que recebe de um time e o outro é a data de nascimento da pessoa. Quero que um outro edit receba a idade da pessoa automaticamente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Capablanca Postado Agosto 27, 2004 Denunciar Share Postado Agosto 27, 2004 Olá,Segue abaixo a unit que eu criei: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask; type TForm1 = class(TForm) Button1: TButton; MaskEdit1: TMaskEdit; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; idade_atual: integer; implementation {$R *.dfm} // A função abaixo foi postada pelo usuário sh@dow em um tópico do site ActiveDelphi (http://www.activedelphi.com.br) // A única alteração que eu fiz foi substituir a variável RESULT (do código original) pela variável IDADE_ATUAL function IdadeAtual(Nasc : TDate): Integer; Var AuxIdade, Meses : String; MesesFloat : Real; IdadeInc, IdadeReal : Integer; begin AuxIdade := Format('%0.2f', [(Date - Nasc) / 365.6]); Meses := FloatToStr(Frac(StrToFloat(AuxIdade))); if AuxIdade = '0' then begin Result := 0; Exit; end; if Meses[1] = '-' then begin Meses := FloatToStr(StrToFloat(Meses) * -1); end; Delete(Meses, 1, 2); if Length(Meses) = 1 then begin Meses := Meses + '0'; end; if (Meses <> '0') And (Meses <> '') then begin MesesFloat := Round(((365.6 * StrToInt(Meses)) / 100) / 30.47) end else begin MesesFloat := 0; end; if MesesFloat <> 12 then begin IdadeReal := Trunc(StrToFloat(AuxIdade)); // + MesesFloat; end else begin IdadeInc := Trunc(StrToFloat(AuxIdade)); Inc(IdadeInc); IdadeReal := IdadeInc; end; idade_atual := IdadeReal; end; procedure TForm1.Button1Click(Sender: TObject); begin IdadeAtual(StrToDate(MaskEdit1.Text)); Form1.Edit1.Text:= IntToStr(idade_atual); end; end. Obs.: eu utilizei um objeto MaskEdit com a seguinte máscara: !99/99/0000;1;_Abs. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Supertux Postado Julho 24, 2019 Denunciar Share Postado Julho 24, 2019 Boa brother, porem preciso de outras duas informações: 1- caso o usuario digitar um data de nascimento acima da data atual, tipo 20/10/2070, acredito que a função irá fazer o cálculo devido a data informada estar correta.. E o resultado da idade será "negativa". 1- em caso de ser um bebê com menos de 1 Ano... Como posso calcular a idade em dias de vida ? Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 24, 2019 Denunciar Share Postado Julho 24, 2019 Tente esse link do forum https://forum.scriptbrasil.com.br/topic/53165-diferença-entre-datas-anos-meses-e-dias/ e esse do google https://www.google.com.br/search?ei=ReY4XeDSBZD85gLEpZb4Aw&q=delphi+calcular+tempo+decorrido+ano+mes+dia&o que=delphi+calcular+tempo+decorrido+ano+mes+dia&gs_l=psy-ab.3..33i160.16462.21520..22248...0.0..0.366.3292.2-9j3......0....1..gws-wiz.......0i22i30.Yh48m0brclE&ved=0ahUKEwigiY-9187jAhUQvlkKHcSSBT8Q4dUDCAo&uact=5 abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - Alexandre -
Como faço para saber quantos anos uma certa pessoa tem, sendo que em um edit tem a data atual que recebe de um time e o outro é a data de nascimento da pessoa. Quero que um outro edit receba a idade da pessoa automaticamente.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.