GARANTIR DESCONTO

Fórum Daysbetween maluco !!! #212504

09/02/2004

0

Amigos,

Alguém sabe me dizer o pq da minha função Daysbetween retorna um numero totalmente louco ?
Estou usando o código abaixo:
 
datamaior := strtodate(DataNasc);
datamenor := strtodate dmData.qryDiarioDia.Fields0].AsString); 
//as datas retornadas estão corretas
showmessage(datetostr(datamaior)); 
showmessage(datetostr(datamenor));

DBTDia.Caption := inttostr(DaysBetween(datamenor,datamaior));


Estou usando para teste as datas 04/06/1952 e 24/05/1952, que teria q me retornar 12 dias (diferença entre essas duas datas)...só que o programa me retorna 36514.

Já tentei a DaySpan e trunquei o resultado, deu na mesma...alguém me ajuda...já não sei mais o q fazer...


Ana Davis

Ana Davis

Responder

Posts

09/02/2004

Beppe

[quote:54b815b402=´Ana Davis´]Amigos,

Alguém sabe me dizer o pq da minha função Daysbetween retorna um numero totalmente louco ?
Estou usando o código abaixo:
 
datamaior := strtodate(DataNasc);
datamenor := strtodate dmData.qryDiarioDia.Fields0].AsString); 
//as datas retornadas estão corretas
showmessage(datetostr(datamaior)); 
showmessage(datetostr(datamenor));

DBTDia.Caption := inttostr(DaysBetween(datamenor,datamaior));


Estou usando para teste as datas 04/06/1952 e 24/05/1952, que teria q me retornar 12 dias (diferença entre essas duas datas)...só que o programa me retorna 36514.

Já tentei a DaySpan e trunquei o resultado, deu na mesma...alguém me ajuda...já não sei mais o q fazer...[/quote:54b815b402]

Sei lá, tentou inverter, assim:
DaysBetween(datamaior,datamenor)



Responder

Gostei + 0

09/02/2004

Ana Davis

Já inverti, já usei a data direto na função, tipo daysbetween(´04/06/1952´, ´24/05/1952´)
Tá muito louco....
Tudo que eu queria era q fosse feita a subtração e retornasse o numero de dias entre uma e outra, só isso, tá dificil !


Responder

Gostei + 0

09/02/2004

Beppe

Caption := IntToStr(DaysBetween(StrToDate(´24/05/1952´), StrToDate(´04/06/1952´)));


Pra mim retorna 11, pra ti não?

Pode ser que alguma configuração de localização esteja errada...


Responder

Gostei + 0

09/02/2004

Fabio.hc

Tente assim:

procedure TForm1.Button12Click(Sender: TObject);
var dias:integer;
begin
   dias:=DaysBetween(strtodate(´04/06/1952´),strtodate(´24/05/1952´));
end;



Responder

Gostei + 0

09/02/2004

Ana Davis

Amigos,

descobri o que fazia a daysbetween retorna um número tão absurdo. Na verdade, não existia nada de absurdo, a função estava retornando o valor correto. Vou explicar: a data que eu capturo do form esta no formato dd/mm/yyyy, enquanto a data q eu seleciono da tabela está no formato dd/mm/yy. Por isso me voltava um valor enorme.
Agora que já sei onde está o problema, queria saber como faço pra configurar as datas da tabela para se tornarem dd/mm/yyyy ??? Estou usando uma simples tabela em paradox. A coluna data está em formato data.


Responder

Gostei + 0

09/02/2004

Fabio.hc

Tente assim:

procedure TFrmPrincipal.FormCreate(Sender: TObject);
begin
   ShortDateFormat:=´dd/mm/yyyy´;
end;



Responder

Gostei + 0

09/02/2004

Ana Davis

Valeu Fábio funcionou que foi uma beleza ! Obrigada mesmo !


Responder

Gostei + 0

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

Aceitar