Cálcular Horas trabalhadas

Delphi

21/01/2006

Olá pessoal estou precisando fazer um cálculo de horas trabalhadas por um funcionário.

Ex.
Entrou 20:00 hrs do dia 20/01/2006
Saiu 06:00 hrs do dia 21/01/2006

Entrou 15:00 hrs do dia 21/01/2006
Saiu 20:00 hrs do dia 21/01/2006

e no final do mês efetuar a soma de todas as horas trabalhadas e quantos dias trabalhados[/b]


Josimar

Josimar

Curtidas 0

Respostas

Glecio

Glecio

21/01/2006

Caro amigo Josimar, tente usar o algoritmo seguinte:


Procedure TForm1.Button1Click(Sender: TObject);
Var
DataEntrada, DataSaida, HoraEntrada, HoraSaida, Dias, horas: double;
Begin
DataEntrada := StrToDate(´20/01/2006´); {Entrar Com esse dado}
DataSaida := StrToDate(´21/01/2006´); {Entrar Com esse dado}
HoraEntrada := 20; {Entrar Com esse dado}
HoraSaida := 6; {Entrar Com esse dado}
Dias := (DataSaida-DataEntrada);
Horas := ((Dias*24)+HoraSaida)-HoraEntrada;
ShowMessage(FloatToStr(Horas));
End;


Qualque dúvida estou a disposição . . .

Espero ter ajudado!!


GOSTEI 0
Josimar

Josimar

21/01/2006

Resolve parcialmente meu problemas, mas caso tenha minutos como devo proceder

Ex: Entrou 20:35 saiu 06:20


GOSTEI 0
Glecio

Glecio

21/01/2006

É só mudar o algoritmo para trabalhar com minutos, ou até mesmo segundos, ao invés de horas. . .

--> ´Horas := ((Dias*24)+HoraSaida)-HoraEntrada; ´ {Altere aqui}

Depois é só transformar em horas novamente: 7h 30min . . .

Se não conseguir ou não entendeu, poste novamente a mensagem q faço o algoritmo e te mando. . .

Espero ter ajudado!!!


GOSTEI 0
Josimar

Josimar

21/01/2006

Não deu certo, estou recebendo os dados Entrada, Saida, HoraE, HoraS de TEdit


GOSTEI 0
Glecio

Glecio

21/01/2006

Tente assim:


Procedure TForm1.Button1Click(Sender: TObject);
Var
DataEntrada, DataSaida, HoraEntrada, HoraSaida: String;
Horas: TTime;
Begin
DataEntrada := ´20/01/2006´;
HoraEntrada := ´20:45´;
DataSaida := ´21/01/2006´;
HoraSaida := ´07:20´;
Horas := StrToDateTime(DataSaida+´ ´+HoraSaida)-StrToDateTime(DataEntrada+´ ´+HoraEntrada);
ShowMessage(TimeToStr(Horas));
End;


Espero ter ajudado!!!!!


GOSTEI 0
Wesleyavila

Wesleyavila

21/01/2006

Pessoal, se eu precisar calcular uma semana de trabalho, qnd seria pra calcular por exemplo, 25:00 ele retorna 01:00, alguem sabe como resolver ?


GOSTEI 0
POSTAR