Fórum Cálculo de horário #328379

31/08/2006

0

Olá pessoal!

Estou com a seguinte dúvida:

Eu tenho um cadastro de chamados que além de outros campos, possui os seguintes: hora_inicial, hora_final, do tipo DateTime.

Eu preciso de duas ajudas:

Uma para calcular a diferença entre os dois(hora_inicial e hora_final), e outra para converter um número de segundos em hora formatada(hh:mm:ss), exemplo:

Tenho o seguinte valor: 600
Em horas isto representa 10 horas, correto?
Eu preciso formatar este valor para que seja exibido assim: 10:00:00.

Agradeço desde já pela ajuda!
Abraços!
Fernando


Robotpost

Robotpost

Responder

Posts

31/08/2006

Cristiano Alves

Utilize a Função MinutesBetween da DateUtils para retornar a diferença entre duas hora em Minutos

Dai utilize essa função baixo para converte o Valor em horas:

function FormataHora(Minutos: Cardinal): string;
var
Horas: Cardinal;
begin
Horas := Minutos div 60;
Minutos := Minutos mod 60;
Result := FormatFloat(´00´, Horas) + ´:´ + FormatFloat(´00´, Minutos);
end;

[b:87cda92c16]Exemplo:[/b:87cda92c16]

procedure TForm1.BitBtn1Click(Sender: TObject);
var
HoraI, HoraF: TDateTime;
begin
HoraI := StrToDateTime(´08:30´);
HoraF := StrToDateTime(´09:45´);
ShowMessage(FormataHora(MinutesBetween(HoraF, HoraI)));
ShowMessage(FormataHora(600));
end;

Bom com a Função formataHora vc pode tranforma 600 mins em horas

ou seja

600 minutos = 10:00

Espero ter ajudado!
Abraço


Responder

Gostei + 0

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

Aceitar