Cálcular Horas trabalhadas
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]
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
Curtidas 0
Respostas
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!!
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
21/01/2006
Resolve parcialmente meu problemas, mas caso tenha minutos como devo proceder
Ex: Entrou 20:35 saiu 06:20
Ex: Entrou 20:35 saiu 06:20
GOSTEI 0
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!!!
--> ´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
21/01/2006
Não deu certo, estou recebendo os dados Entrada, Saida, HoraE, HoraS de TEdit
GOSTEI 0
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!!!!!
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
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