Fórum Diferença entre horários... #284374
10/06/2005
0
E aí galera! Tô com o seguinte problema: Queria mostrar em um Label a diferença entre duas váriaveis TDateTime com a seguinte formatação: ´X dias, X horas, X minutos e X segundos´. Fiz o seguinte código no OnClick de um botão para testar:
O resultado que eu gostaria de obter seria: ´0 (zero) dias, 1 hora, 10 minutos e 22 segundos´, mas aqui quando eu rodo o Label mostra o seguinte: ´30 dias, 1 hora, 10 minutos e 22 segundos´.
Se alguém puder me ajudar! Até!
procedure TForm1.Button1Click(Sender: TObject); var data1,data2:TDateTime; begin data1 := StrToDateTime(´10/06/2005 10:00:00´); data2 := StrToDateTime(´10/06/2005 11:10:22´); Label1.Caption := FormatDateTime(´dd "dias", hh "horas", nn "minutos e " ss " segundos"´,data2-data1); end;
O resultado que eu gostaria de obter seria: ´0 (zero) dias, 1 hora, 10 minutos e 22 segundos´, mas aqui quando eu rodo o Label mostra o seguinte: ´30 dias, 1 hora, 10 minutos e 22 segundos´.
Se alguém puder me ajudar! Até!
Delphi32
Curtir tópico
+ 0
Responder
Posts
10/06/2005
Massuda
No seu exemplo, o resultado de data2-data1 resulta em um valor maior que zero e menor que um (por exemplo, 0.042).
Quando você pede para formatar essa diferença usando...... o ´dd´ significa o dia da data e não o total de dias (são coisas diferentes). No Delphi, a data 0 corresponde ao dia 30/12/1899, daí estar saindo ´30 dias´ no seu exemplo.
Para ter o resultado que você espera, faça algo assim:
Quando você pede para formatar essa diferença usando...
FormatDateTime(´dd "dias", hh "horas", nn "minutos e " ss " segundos"´,data2-data1)
Para ter o resultado que você espera, faça algo assim:
Format(´¬d dias ¬s´, [ Trunc(data2-data1), FormatDateTime(´hh "horas", nn "minutos e " ss " segundos"´,data2-data1) ])
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)