Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Funções para idade

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Delphi Funções para idade

    Código PHP:
    [CENTER]unit Unit1;
     
    interface
     
    uses
      Windows
    MessagesSysUtilsClassesGraphicsControlsFormsDialogs,
      
    StdCtrlsButtonsMask;
     
    type
      TForm1 
    = class(TForm)
      
    meNascTMaskEdit;
      
    Label1TLabel;
      
    SpeedButton1TSpeedButton;
      
    edIdadeTEdit;
      
    Label2TLabel;
      
    BitBtn1TBitBtn;
      
    Label3TLabel;
      
    edDiasTEdit;
      function 
    Bissexto(AYearInteger): Boolean;
      function 
    DiasDoMes(AYearAMonthInteger): Integer;
      function 
    Idade2(DataNasc TDate) : String;
      function 
    Dias(Data TDate) : String;
      function 
    Idade(Nasc TDate) : String;
      
    procedure SpeedButton1Click(SenderTObject);
      
    procedure meNascKeyDown(SenderTObject; var KeyWord;
      
    ShiftTShiftState);
      private
      { Private 
    declarations }
      public
      { Public 
    declarations }
      
    end;
     
    var
      
    Form1TForm1;
     
    implementation
     
    {$R *.DFM}
     
    function 
    TForm1.Bissexto(AYearInteger): Boolean;
    begin
      Result 
    := (AYear mod 4 0) and ((AYear mod 100 <> 0) or (AYear mod 400 0));
    end;
     
    function 
    TForm1.DiasDoMes(AYearAMonthInteger): Integer;
    const
      
    DaysInMonth: array[1..12of Integer = (312831303130313130313031);
    begin
      Result 
    := DaysInMonth[AMonth];
      if (
    AMonth 2) and Bissexto(AYearthen Inc(Result);
    end;
     
     
    function 
    TForm1.Idade2(DataNasc TDate) : String;
    Var 
    Ano1Mes1Dia1 Word;
      
    Ano2Mes2Dia2 Word;
      
    AnoMesDia Word;
      
    Idade String;
      
    AuxDia1AuxDia2 Integer;
    begin
      Idade 
    := '';
      
    DecodeDate(DataNascAno1Mes1Dia1);
      
    DecodeDate(DateAno2Mes2Dia2);
      
    AuxDia1 := Dia1;
      
    AuxDia2 := Dia2;
      if (
    Dia1 Dia2) And ((Mes2 Mes1) = 1then begin
      Dia2 
    := Dia2 DiasDoMes(Ano1Mes1);
      
    Mes1 := Mes2;
      
    end else if (Dia1 Dia2) And (Mes1 <> Mes2then begin
      Dia2 
    := Dia2 DiasDoMes(Ano1Mes1);
      
    end else if (Mes1 Mes2) And (Dia1 Dia2) And (Ano1 <> Ano2then begin
      Dia2 
    := Dia2 DiasDoMes(Ano1Mes1);
      
    Mes2 := Mes2 11;
      
    Ano1 := Ano1 1;
      
    end;
     
      if (
    Mes1 Mes2) And (AuxDia1 <= AuxDia2then begin
      Ano1 
    := Ano1 1;
      
    Mes2 := Mes2 12;
      
    end else if (Mes1 Mes2) And (AuxDia1 AuxDia2then begin
      Ano1 
    := Ano1 1;
      
    Mes2 := Mes2 11;
      
    end;
     
      
    Ano := Ano2 Ano1;
      
    Mes := Mes2 Mes1;
      
    Dia := Dia2 Dia1;
      if 
    Ano 1 then
      Idade 
    := IntToStr(Ano) + ' Anos'
      
    else if Ano 1 then
      Idade 
    := IntToStr(Ano) + ' Ano';
     
      if 
    Mes 1 then
      Idade 
    := Idade ', ' IntToStr(Mes) + ' Meses '
      
    else if Mes <> 0 then
      Idade 
    := Idade ', ' IntToStr(Mes) + ' Mês ';
     
      If 
    Ano 0 then
      Delete
    (Idade11);
     
      if 
    Dia 1 then
      Idade 
    := Idade ' e ' IntToStr(Dia) + ' Dias'
      
    else if Dia <> 0 then
      Idade 
    := Idade ' e ' IntToStr(Dia) + ' Dia';
     
      if (
    Mes 0) And (Ano 0then
      Delete
    (Idade13);
     
      if (
    Ano1 Ano2) And (Mes1 Mes2) And (Dia1 Dia2then
      Idade 
    := '0';
     
      
    Result := Idade;
    end;
     
     
    function 
    TForm1.Dias(Data TDate) : String;
    begin
      Result 
    := FloatToStr(Date Data);
    end;
     
    function 
    TForm1.Idade(Nasc TDate) : String;
    Var 
    AuxIdadeMesesIdadeReal String;
      
    MesesFloat Real;
      
    IdadeInc Integer;
    begin
      AuxIdade 
    := Format('%0.2f', [(Date Nasc) / 365.6]);
      
    Meses := FloatToStr(Frac(StrToFloat(AuxIdade)));
     
      if 
    AuxIdade '0' then begin
      Result 
    := '0,0';
      Exit;
      
    end;
     
      if 
    Meses[1] = '-' then
      Meses 
    := FloatToStr(StrToFloat(Meses) * -1);
     
      
    Delete(Meses12);
     
      if 
    Length(Meses) = 1 then
      Meses 
    := Meses '0';
     
      if (
    Meses <> '0') And (Meses <> ''then
      MesesFloat 
    := Round(((365.6 StrToInt(Meses)) / 100) / 30)
      else
      
    MesesFloat := 0;
     
      if 
    MesesFloat <> 12 then
      IdadeReal 
    := IntToStr(Trunc(StrToFloat(AuxIdade))) + ',' FloatToStr(MesesFloat)
      else 
    begin
      IdadeInc 
    := Trunc(StrToFloat(AuxIdade));
      
    Inc(IdadeInc);
      
    IdadeReal := IntToStr(IdadeInc) + ',' '0';
      
    end;
     
      
    Result := IdadeReal;
    end;
     
    procedure TForm1.SpeedButton1Click(SenderTObject);
    begin
      edDias
    .Text := Dias(StrToDate(meNasc.Text));
      
    edIdade.Text := Idade2(StrToDate(meNasc.Text));
    end;
     
    procedure TForm1.meNascKeyDown(SenderTObject; var KeyWord;
      
    ShiftTShiftState);
    begin
      
    if Key 13 then begin
      SpeedButton1
    .Click;
      
    Key := 0;
      
    end;
    end;
     
    end
    [/CENTER]
    ~# Criado pela [IN]Segurança #~
X
Working...
X