Calcular Horas
Olá pessoal estou com um problema para calcular horas es se possivel m ajudarem esse problema...
tenho 3 DBEdits q recebera as horas de saidas e 3 DBedits q recebera as Horas de chegadas
e m da o total de horas trabalhada
sendo q os edits recebe os dados da seguinte forma HH:MM
eu ja tentei fazer de umas forma mas sem sucesso e m retorna o total com uam diferença meioto grande de horas...
tenho 3 DBEdits q recebera as horas de saidas e 3 DBedits q recebera as Horas de chegadas
e m da o total de horas trabalhada
sendo q os edits recebe os dados da seguinte forma HH:MM
eu ja tentei fazer de umas forma mas sem sucesso e m retorna o total com uam diferença meioto grande de horas...
Tchucky
Curtidas 0
Respostas
Mateusandre
30/03/2008
Ola amigo o delphi tem uma função pronta e se usa da seguinte meneira
procedure Tfrm_ajuda.Button4Click(Sender: TObject);
var
datainicial, datafinal : TDateTime;
Contador : Integer;
begin
datainicial := StrToDate(Edit1.Text);
datafinal := StrToDate(Edit2.Text);
Contador := hoursBetween(datainicial,datafinal);
Label9.Caption := IntToStr(Contador);
end;
procedure Tfrm_ajuda.Button4Click(Sender: TObject);
var
datainicial, datafinal : TDateTime;
Contador : Integer;
begin
datainicial := StrToDate(Edit1.Text);
datafinal := StrToDate(Edit2.Text);
Contador := hoursBetween(datainicial,datafinal);
Label9.Caption := IntToStr(Contador);
end;
GOSTEI 0
Ffabiop
30/03/2008
No Deplhi quando fazemos um cálculo de horas temos o resultado em dias então:
As váriéveis horaIni e horaFim estão como datetime porque evita problemas de cálculo quando o intervalo passa de um dia para o outro, informando as horas com a data junto, não precisamos nenhum tratamento especial(´31/03/2008 08:30:00´)
var horaIni, horaFim: TDateTime; Tempo: Real; Hora: String; begin //minutos parados Tempo := round((HoraFim-HoraIni)*24*60); //horas Hor:=Int(Tempo/60); //minutos Min:=Int(Tempo-(Hor*60)); //hora formatada Hora := FloatToStr(Min); //preenche minutos com duas casas while Length(Hora) < 2 do Hora:=´0´+Hora; //Hora formatada Hora :=FloatToStr(Hor)+´:´+Hora;
As váriéveis horaIni e horaFim estão como datetime porque evita problemas de cálculo quando o intervalo passa de um dia para o outro, informando as horas com a data junto, não precisamos nenhum tratamento especial(´31/03/2008 08:30:00´)
GOSTEI 0