Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Obter a Idade através de duas data


Eder

Pergunta

Ola, gostaria de saber como Obter a Idade através de duas data, Data de Hoje em relação a data de aniversário.

Estou usando esta dica, mas ela as vezes se perde....

se eu digitar a data de nascimento 13/11/1970 ela me traz 41 anos esta correto, mas se eu digitar 13/02/1970 ela não me mostra nada...sai em branco o resultado do label.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Mask, ToolEdit;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

function Idade(IdadeNasc : String) : String;

var

AnoAtual,MesAtual,DiaAtual : word;

Ano,Mes,Dia : word;

begin

DecodeDate(StrToDate(IdadeNasc),AnoAtual,MesAtual,DiaAtual);

DecodeDate(Date,Ano,Mes,Dia);

if (Mes <= MesAtual) and (Dia <= DiaAtual) then

begin

Result := IntToStr((Ano-AnoAtual));

end;

if (Mes <= MesAtual) and (Dia > DiaAtual) then

begin

Result := IntToStr((Ano-AnoAtual)-1);

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Label1.Caption := Idade(Edit1.Text);

end;

end.

Obrigado, Eder

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

//-- Primeiro declare a função na cláusula PRIVATE do seu form

private
{private declarations}
  Function DataIdade(DataNascimento : String) : Integer;
public

implementation

//-- Depois coloque o corpo da função após a cláusula implementation

Function TForm1.DataIdade(DataNascimento : String) : Integer;
begin
  try
    strtodate(datanascimento); //-- Verifica se a data é valida
  except
    messagedlg('Data de nascimento inválida!', MTERROR, [MBOK], 0);
    abort;
  end;
  result := Trunc((Date - Strtodate(DataNascimento))/365.25);
end;

//-- Pronto, agora é só atribuir a um controle
//- - tipo:

edit1.text := inttostr(dataidade('12/01/1980'));

abraço

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...