Fórum ERRO de calculo com datas no Delphi #593221
17/05/2018
0
Fiz um exemplo basico abaixo:
Var xData:TDate;
Begin
TabelaCampo_Data.Value := Date;
xData := Date;
IF TabelaCampo_Data.Value = Date Then
showmessage('Data igual')
Else
showmessage('Data diferente');
.
Ok, no exemplo acima o resultado deve sempre ser verdadeiro, correto?
Pois comigo está dando Falso, tanto o campo como a variavel é tipo TDATE
No debug eu olho e as datas sao aparentemente iguais, mas ao passar no IF da como falso.
Alguém já passou por isso?
Alberto
Curtir tópico
+ 0Posts
17/05/2018
Raimundo Pereira
Begin
//
xData := Date;
//Vai ter uma insert ou um edit?
// Vamos realizar un insert
with TabelaCampo_Data do begin
open;
insert;
Fielbyname('DATA').VALUE:=xData;
Post;
close;
open;
If Fielbyname('DATA').VALUE=xData Then
Begin
showmessage('Data igual')
end
Else
Begin
showmessage('Data diferente');
End;
end;
end;
Gostei + 0
17/05/2018
Raimundo Pereira
Begin
//
xData := Date;
//Vai ter uma insert ou um edit?
// Vamos realizar un insert
with TabelaCampo_Data do begin
open;
insert;
Fielbyname('DATA').VALUE:=xData;
Post;
close;
open;
If Fielbyname('DATA').VALUE=xData Then
Begin
showmessage('Data igual')
end
Else
Begin
showmessage('Data diferente');
End;
end;
end;
Gostei + 0
17/05/2018
Emerson Nascimento
Var xData:TDate;
Begin
xData := Date; // atribui o valor à variável
TabelaCampo_Data.Value := xData; // grava no campo o conteúdo da variável
IF TabelaCampo_Data.Value = xData Then // compara o conteúdo do campo com o conteúdo da variável
showmessage('Data igual')
Else
showmessage('Data diferente');Gostei + 0
17/05/2018
Alberto
Era um componente TDateTimePicker, eu inicialmente pegava a propriedade DATE dele
que o usuario havia escolhido e entao passava como parametro para uma funcao.
Dentro da funcao eu faço a verificacao, que no caso estava dando errado, pois esse
componente, retorna o valor de DATE , provavelmente com TDATETIME, e internamente
o Delphi ao comparar verifica que nao sao iguais, provavelmente mais um erro
de componente mesmo.
Fiz o seguinte pra contornar a situacao:
variavel := StrToDate(DateToStr(datetimepicker1.date));
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)