Calculos com Data ?

Delphi

18/05/2006

Olá Pessoal !

Preciso fazer algo como, o usuário digitaria o número de Dias/Meses/Anos e apartir disso gostaria de saber a Data.

Exemplo:

O Paciente tem 5 dias de Nascido:

Dia = 5
Mes = 0
Ano = 0

Apartir disso eu acharia a data de Nascimento 14/05/2006

Obrigada.


Renatacoimbra

Renatacoimbra

Curtidas 0

Respostas

Marco Salles

Marco Salles

18/05/2006

O Paciente tem 5 dias de Nascido:


A Conta pergunta é : Cinco dias de Nascido a contados a partir de que ????

é claro que pela sua resposta
Dia = 5 Mes = 0 Ano = 0 Apartir disso eu acharia a data de Nascimento 14/05/2006


chega-se a uma data inicial de 09/05/2006....

[b:58635add5b]Mas qualquer logica para se determinar a data Final depende da Data Inicial... [/b:58635add5b]Qual é a sua regra para construir esta Data Inicial ?????.. Ela é informada ??? ele é armazenada ??? ela é cadastrada ???


GOSTEI 0
Paullsoftware

Paullsoftware

18/05/2006

se for para comparar com a data atual pode-se Subtrair o valor da data...


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

18/05/2006

algo assim deve funcionar:

uses DateUtils;

data := data_de_partida/date;
data := IncYear(IncMonth(data - dias, meses * -1), anos * -1);


GOSTEI 0
Renatacoimbra

Renatacoimbra

18/05/2006

Obrigada emerson.en pela dica, funcionou direitinho !

Olha o codigo para quem quiser:


function CalculaIdade(A, M, D: Word) : TDateTime;
Var
  Data: TDateTime;
begin
  Data := Date;
  Data := IncYear(IncMonth(Data - D, M * -1), A * -1);
  Result := Data;
end;




[]´s


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

18/05/2006

vc poderia fazer assim:
function CalculaNascimento(A, M, D: Word;
 DataDePartida: TDateTime = 0): TDateTime;
begin
  if DataDePartida = 0 then DataDePartida := Date;
  Result := IncYear(IncMonth(DataDePartida - D, M * -1), A * -1);
end;


se você quiser partir de uma data específica, passe-a para a função.
nascimento := CalculaNascimento(5, 2, 0, datadesejada);

se você quiser partir da data do sistema, não passe data alguma.
nascimento := CalculaNascimento(5, 2, 0);


GOSTEI 0
Renatacoimbra

Renatacoimbra

18/05/2006

Hum, legal !

vou adaptar a function então.

Obrigada mais uma vez.


[]´s


GOSTEI 0
POSTAR