GARANTIR DESCONTO

Fórum Contar número de dias entre datas #192387

02/11/2003

0

A situação é a seguinte: Tenho uma data inicial com o formato 13/04/1983 e uma data final com o mesmo formato 02/11/2003. Como calcular quantos dias se passaram desde a data inicial? Estes são apenas exemplos. Mas o form terá dois edits para as datas inicial e final e mais um para exibir a quantidade de dias passados. Já tentei fazer isso, mas só consigo retornar um resultado em formato de data também.


Flanilson

Flanilson

Responder

Post mais votado

02/11/2003

Use algo assim:
procedure TForm1.Button1Click(Sender: TObject);
var data1, data2 : TdateTime;
begin
  data1 := StrToDate(edit1.Text);
  data2 := StrToDate(Edit2.Text);
  label1.Caption := inttostr(daysbetween(data2,data1));
end;


Abraços.


Bisturi

Bisturi
Responder

Gostei + 1

Mais Posts

02/11/2003

Ltres

Tem uma uses chamada DateUtils q tem todo tipo de funções para data e tempo.

No seu caso pode-se utilizar o :arrow: DaysBetween(datamaior, datamenor), que ira retornar um inteiro com o número de dias entre as datas. Lembre-se de colocar DateUtils na Uses da unit.

Espero ter ajudado!


Responder

Gostei + 0

03/11/2003

Imoreira

function dias(data1,data2:tdatetime):variant;
begin
result:=data2-data1;
end;

use assim

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
label1.caption:=dias(strtodate(edit1.text),strtodate(edit2.text));
end;
end;


Responder

Gostei + 0

04/11/2003

Flanilson

Beleza, Consegui o que queria. No entanto, agora tenho outro problema. Quando tiver a quantidade de dias, tem como converter, de uma maneira mais simples, esses dias em anos e meses?


Responder

Gostei + 0

04/11/2003

Ltres

Tente isso!

O pirmeiro separa a data e o segundo junta.
Essas funções estão no SysUtils

procedure TForm1.FormCreate(Sender: TObject);
var
  Dia, Ano, Mes: Word;
  OutraData: TDate;
begin
  DecodeDate(date, Ano, Mes, Dia); //Separa o Ano, Mes e Dia de uma data

  Showmessage(´Ano: ´+ IntToStr(Ano) +´, Mes: ´+  IntToStr(Mes) + ´ e Dia: ´+ IntToStr(Dia));

  OutraData := EncodeDate(Ano, Mes, Dia); //Junta os campos de Ano, Mes, Dia numa TDate
end;


Acho q era isso o q queria!? :lol:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar