GARANTIR DESCONTO

Fórum Diminuir uma data de outra e o resultado um valor integer #212054

06/02/2004

0

ola.

estou com um pequeno problema, preciso fazer uma calculo entre duas datas e o resultado ser um valor inteiro.

tentativa 1

tbpagtoDifDias.Value :=
tbpagtoVencimento.Value -
tbpagtoPagto.Value ;

tentativa 2

procedure
var venc, pagto, difdias : integer;
begin

venc := StrToInt(DbEdit1.Text);
Pagto := StrToInt(DbEdit2.Text);
difdias := venc - pagto;
DbEdit3.Text := StrToint(Resp)

end;[b:12b4c332d1][/b:12b4c332d1][b:12b4c332d1][/b:12b4c332d1]

[b:12b4c332d1][color=red:12b4c332d1]Editado(Beppe): Título em maiusculas. Leia as regras de conduta.[/color:12b4c332d1][/b:12b4c332d1]


Airtao

Airtao

Responder

Posts

06/02/2004

Fabio.hc

Tente assim:

procedure TForm1.Button1Click(Sender: TObject);
var venc, Pagto: Tdate;
    difdias :double;
begin
   venc:=StrToDate(Edit1.Text);
   Pagto:=StrToDate(Edit2.Text);
   difdias :=(venc - Pagto);
   Label1.Caption:=FloatToStr(difdias);
end;



Responder

Gostei + 0

06/02/2004

Ltres

Ou utilize o DaysBetween, ele retorna um inteiro com a diferença de dias entre duas datas.

uses DateUtils;

procedure TForm1.Button1Click(Sender: TObject);
var
  data_de, data_ate: TDate;
begin
  data_ate := Date;
  data_de  := StrToDate(´01/01/2004´);
  ShowMessage(IntToStr(DaysBetween(data_ate, data_de)));
end;


Lembre-se de colocar o DateUtils no Uses


Responder

Gostei + 0

07/02/2004

Ana Davis

Também estou com o mesmo problema do airtao. Só que encontro o problema no resultado...usando a daysbetween, o valor retornado é enorme....
exemplo: estou usando o intervalo (04/06/1952) - (24/-5/1952) isso me retornaria 12 dias.
Como a daysbetween estou recebendo como resultado o valor 36514...já mudei pra double e trunquei....estou usando inteiro para receber o resultado....mas não sei pq isso acontece.

Essas datas eu recebo a maior do edit e a outra eu encontro atraves do um select da minha tabela.


Responder

Gostei + 0

07/02/2004

Ltres

Ola Ana Davis.
Realmente impressionante... Pelos testes q fiz aqui naum da erro nenhum! De uma nova olhada no codigo e veja se tem algo errado, ou poste aqui o codigo.


Responder

Gostei + 0

07/02/2004

Adilsond

Sendo tbpagtoDifDias é um integer:

tbpagtoDifDias.Value := Trunc(tbpagtoVencimento.Value - tbpagtoPagto.Value);


Responder

Gostei + 0

07/02/2004

Adilsond

Sendo tbpagtoDifDias um integer: tbpagtoDifDias.Value := Trunc(tbpagtoVencimento.Value - tbpagtoPagto.Value);


Se o resultado for 0, o pagamento foi efetuado na data do vencimento;
Se o resultado for Positivo, o pagamento foi efetuado antes do vencimento;
Se o resultado for Negativo, o pagamento foi efetuado depois do vencimento;


Responder

Gostei + 0

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

Aceitar