Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roberto_S_Luz

Calculo de Horas

Recommended Posts

Galera...é o seguinte...to com um pequeno grande probleminha que é o seguinte.

 

Bom....vamos pélo inicio...

 

Um motorista deve trabalhar 7:20 por dia e 220 por mês.

 

Se ele trabalhar 7:20 por dia durante todo o mês, ele irá receber apenas o salario fixo , mas...se trabalhar a mais irá ganhar a hora extra (logico).

Até aí..tudo bem..é facil..inclusive eu já fiz...mas agora vem o problema que não tinham mencionado, mas agora tem de ter.

 

Se... o motorista trabalhou digamos que....1 hora a mais hoje...e amanhã sair 1 hora mais cedo, então...a hora que ele ganhou antes deverá ser descontada pela hora que saiu mais cedo no dia seguinte, e isso vale para os dias que ele não trabalhar (por motivos de não ser necessario todos os veiculos fazendo viagens).

 

Bom...eu tava querendo fazer da seguinte maneira.

 

Verificar o total de hora todos os dias (hora inicial e hora final) e ir acumulando o total de horas trabalhadas diariamente, daí no fim do mês quando forem fechar o mês de cada motorista, deverá ser realizado um calculo somando todas as horas trabalhadas num intervalo de data (o intervalo de data é facil), o problema é...vai dar mais de 24 horas e aí fica dificil para somar horas assim pq não existe esse formato de horas acima de 23:59:59 (pelo menos eu desconheço), então não sei como fazer.

 

Gostaria de fazer assim pois aí vamos supor que o cara trabalhou 253:35 (viu só...não existe essa hora) por mês,daí era só subtrair pelas horas obrigatorias que seria 220 e aí iria dar o total e era só multiplicar pelo valor da hora, só que..aí está o problema. Dessa forma seria bom, pois não importa que hora ele saiu, se trabalhou ou não, está está de atestado, enfim...o que vale são as horas trabalha, se constar mais de 220 horas mensais, ele irá receber pelo excedente.

 

Bom...o meu probleminha é esse...então caso alguem tiver uma solução para isso ou ter uma logica diferente e quiser compartilhar...eu serei muito grato.

 

Abraços galera http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Humm..ninguem...rssss

 

Bom...de qualquer forma..agradeço aos que leram, obrigado mesmo assim

 

Abraços e bom fim de semana para você's!!!

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

use um campo numerico para isso e nao um campo de hora

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Mário Monteiro, sou grato por sua dica mas...como eu poderia usar isso?

Não entendi muito bem a sua dica...poderia me dar algum exemplo se for possivel.

 

Obrigado!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

para armazenar o total de horas voce soma a diferença do horario de saida para o de entrada de todos os dias

 

mas so um campo nmerico suportará este total por ser maior que as 24 que um campo de hora aceitaria

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahh tá...sim...você tambem pensou por essa lado...rsss.

Eu já testei usando a forma decimal e deu algumas complicações aki...bom...de acordo com o que você citou ai...me veio uma ideia na cabeça...irei testar...qualquer coisa...volto a postar aki novamente beleza.

 

Mario...agradeço por sua atenção. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Abraços http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

qualquer coisa pode postar

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa...belezura com você's...

 

Bom...o meu problema está digamos que...parcialmente resolvido.

Lhes direi o porque;

 

Eu tava encucado com a parada de por exemplo como calcular o valor de mais de 23:59:59, pois não existem horas assim...

Mas...resolvir da seguinte maneira.

 

Hora Inicial = "06:20"

Hora Final = "14:20";

 

Usando strtotime();, eu convertia cada hora (em segundos eu acho, dava um numero esquesito "1236848400"), daí subtraia a hora inal pela inicial e obtinha o valor em segundos, então era só dividir por 60 que eu teria o total de minutos, e esses minutos iria subtrair pelo total de minutos obrigatorios diariamente que seria "440 ou seja, 7:20".

 

Por exemplo: os valores acima, vão dar 500 minutos ou 8:20 , sendo que...serão obrigatorio, somente 440 ou 7:20 , portanto...500 - 440 = 60 minutos ou 1 hora, então 8:20 - 7:20 = 1 hora...

 

Então...para cada cadastro...eu irei acumular os minutos extras, daí irei somar todos os minutos extras num intervalo de datas de um motorista especifico e pegar todos esses minutos, converter para segundos (minutos * 60) e jogar para uma função que irá me retornar o valor exato em horas, mesmo que sejam mais de 24:59:59,

 

A função é

 

public function converter_hora($total_segundos){
		
		$hora = floor( $total_segundos / (60*60) );
		$total_segundos = ($total_segundos % (60*60));
		
		
		$minuto = floor($total_segundos / 60);
		$total_segundos = ($total_segundos % 60);
		
		
		$hora_minuto = $hora.":".$minuto;
		return $hora_minuto;
	  }

Então em vez de me retornar algo como 8.33333333333 (formato DECIMAL), irá me retornar o valor em horas corretamente algo como 8:20 (formato TIME), caso seja um valor de horas maior que 24 por exemplo 50.3333333333 horas...irá me retornar 50:20.

 

A questão de trabalhar 1 hora a mais hoje e sair 1 hora mais cedo amanhã e perder o que ganhou no dia anterior...está descartado..ele só irá ganhar o que trabalhar a mais, se não trabalhar a mais então ganhará apenas o salario normal mesmo.

 

Bom...então por hora...acho que o meu problema está resolvido...irei ver após o cliente chegar de viajgem...se...não irá me pedir algo a mais novamente....rsss

 

Galera...obrigado pela força. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Abraços... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.