14/09/2004

Erro com data

Tenho esse código,
Label18.Caption := DateTimeToStr(Time);

Mas qndo executo meu sistema ele traz uma data absurda
31/12/1899 21:07:55


O que poderia ser isso?


Facc

Respostas

14/09/2004

Vinicius2k

Colega,

30/12/1899 é quando se inicia a contagem de data e hora para funções como Time, Date e Now. Lembre-se de que uma data (tipos Date, DateTime, TimeStamp, etc), não é bem uma data... é um valor de alta precisão conténdo um inteiro e fração que representa o tempo (em dias) transcorrido de 30/12/1899 00:00:00,0000 até data e/ ou hora q vc solicitou...
Ilustração simples:
ShowMessage(FloatToStr(Now));

Como vc está convertendo para [b:b45fdad91b]Data e Hora[/b:b45fdad91b] uma constante que [b:b45fdad91b]só contém a hora[/b:b45fdad91b] (Time), logo a data é 0, por isso 30/12/1899. Se vc usar a função de conversão correta, terá o resultado que deseja...

Exemplos:
[b:b45fdad91b]DateToStr(Date)[/b:b45fdad91b] resulta em 14/09/2004
[b:b45fdad91b]TimeToStr(Time)[/b:b45fdad91b] resulta em 21:43:00
[b:b45fdad91b]DateTimeToStr(Date)[/b:b45fdad91b] resulta em 14/09/2004 00:00:00
[b:b45fdad91b]DateTimeToStr(Now)[/b:b45fdad91b] resulta em 14/09/2004 21:43:00

Espero ter ajudado...
T+


Responder Citar