Fórum Calculo de datas (quando data em branco) #214824
17/02/2004
0
Mais o de data resolvi abrir outro topico e passar o codigo que eu uso
Veja so:
var venc, Pagto: Tdate;
difdias :double;
begin
venc:=StrToDate(dbEdit5.Text);
Pagto:=StrToDate(dbEdit7.Text);
difdias :=(Pagto - venc);
dbedit12.text:=FloatToStr(difdias);
Uso esse calculo de datas para me retornar a quantidade de dias(funciona beleza) a questão que se eu não informar o pagto (dbedit7) ele da uma mensagem de erro ´__/__/____ não é uma data valida´
Como faço para resolver isso em cima desse codigo que eu uso
Obrigado desde já
wagnernormando@ig.com.br
Wagner
Curtir tópico
+ 0Posts
17/02/2004
Fórum Vini
tente usar esse código:
var venc, Pagto: Tdate; difdias :double; begin try venc:=StrToDate(dbEdit5.Text); except Showmessage(´Data de vencimento inválida!!´); end; try Pagto:=StrToDate(dbEdit7.Text); except Showmessage(´Data de pagamento inválida!!´); end; difdias :=(Pagto - venc); dbedit12.text:=FloatToStr(difdias);
Espero ter ajudado.
Vinicius.
Gostei + 0
17/02/2004
Lucas Silva
procedure .queryCampoSetText(Sender: TField; const Text: String); begin if Text = ´ / / ´ then Sender.AsString := ´´ else Sender.AsString := Text; end;
Gostei + 0
17/02/2004
Wagner
Mais teu condigo não funciona para mim porque muitas vezes eu tenho que ter o campo data de pagamento em branco (se o cliente não pagou ainda) o que eu quero o evitar o erro quando dt.pag=nada. :lol:
Oh! lucas eu acho que é por ai, mais tambem continua com a mensagem :lol:
Gostei + 0
17/02/2004
Lucas Silva
Gostei + 0
17/02/2004
Fórum Vini
dei a dica usando o try..except porque ele já é também uma forma de se verificar se a data está válida.
Mas no seu caso a dica do Lucas é melhor.
T+,
Vinicius.
Gostei + 0
18/02/2004
Wagner
__/__/____
no editmask 99/99/9999
Gostei + 0
19/02/2004
Wagner
Gostei + 0
19/02/2004
Paulo_amorim
Se o campo for vazio, o que deveria acontecer??
o difdias deve retornar o que especificamente?
Até+
Gostei + 0
19/02/2004
Wagner
Gostei + 0
19/02/2004
Lucas Silva
procedure .queryCampoSetText(Sender: TField; const Text: String); begin if Text = ´ / / ´ then Sender.AsString := ´´ else Sender.AsString := Text; end;
Wagner,
Este código não funcionou???
Continua dando o erro do mesmo jeito?
Gostei + 0
19/02/2004
Marco Salles
var venc, Pagto: Tdate; difdias :double; begin venc:=StrToDate(dbEdit5.Text); if DbEdit7.Text <> ´´ Then // Simples Teste begin Pagto:=StrToDate(dbEdit7.Text); difdias :=(Pagto - venc); end else difdias:=0; dbedit12.text:=FloatToStr(difdias);
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)