Como converter a int 20040801 p/ date 01/08/2004?

Delphi

28/07/2004

Olá Pessoal !
Venho pedir a ajuda de vcs + uma vez, pois eu preciso fazer umas contas com as datas deste banco de dados biruta, que pra variar guarda a data desta maneira: 20040801 (o que seria 01/08/2004).

Eu preciso fazer a subtração de duas datas como essa acima, e deste jeito só da certo se forem do mesmo mês, por isso achei a solução + viavel converter-lás.

Desde já, grato !
Valew !


Cdteam

Cdteam

Curtidas 0

Respostas

Beppe

Beppe

28/07/2004

Acho que pegando as partes

Dia: Data mod 100;
Mes: Data div 100 mod 100;
Ano: Data div 10000;

e depois montando vc consegue. Tem um rotina que faz isso, EncodeDate.


GOSTEI 0
Laureano Pereira

Laureano Pereira

28/07/2004

Quem sabe tu transforma a tua data (20040801) em string, quebra ela em ano, mes, dia...

e dai converte para data com encodedate()


GOSTEI 0
Cdteam

Cdteam

28/07/2004

[quote:7c87161731=´Laureano Pereira´]Quem sabe tu transforma a tua data (20040801) em string, quebra ela em ano, mes, dia...

e dai converte para data com encodedate()[/quote:7c87161731]

era exatamente isso que eu preciso, como faço para pegar esta string e jogála em 3 outras strings?:)


GOSTEI 0
Rômulo Barros

Rômulo Barros

28/07/2004

procedure TForm1.Button1Click(Sender: TObject);
Var
   MinhaData : String;
   Ano,Mes,Dia : String;
   NovaData : TDateTime;
begin
   MinhaData := ´20040801´;
   Ano := Copy(MinhaData,1,4);
   Mes := Copy(MinhaData,5,2);
   Dia := Copy(MinhaData,7,2);
   NovaData := EncodeDate(StrToInt(Ano),StrToInt(Mes),StrToInt(Dia));
   ShowMessage(DateToStr(NovaData));
end;

end.



GOSTEI 0
POSTAR