Ir para conteúdo

Arquivado

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

marcelinho_choc

folha de ponto

Recommended Posts

olá galera do imasters! sou novo aqui no forum e queria uma ajudinha de voces,tenho meu programa em php e gostaria que alguém me ajudasse! É o seguinte, tenho o programafolha_ponto

<?php	$meses=array ("janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");	$dia = date ("d", time());	$mes = date ("m", time());	$ano = date ("Y", time());	echo "<b><h3><font color=\"#FFFFFF\">Olá, hoje é dia ". $dia." de ". $meses [$mes-1]." de ".$ano;	$nome = $_POST['nome'];	$data = $_POST['data'];	$entrada = $_POST['$entrada'];	$saida = $_POST['$saida'];	$almoco = $_POST['$almoco'];		$nome = $nome;	$data = $data;	$entrada = explode(":" $entrada);	$saida = explode(":", $saida);	$almoco = explode(":",$almoco);		$acumulador1 = ($entrada[0] * 3600) + ($entrada[1] *60 + $entrada[2];	$acumulador2 = ($saida[0] * 3600) + ($saida[1] *60 + $saida[2];	$acumulador1 = ($almoco[0] * 3600) + ($almoco[1] *60 + $almoco[2];		$resultado = (($acumulador2 - $acumulador1) - $acumulador3);	$hora_ponto = floor($resultado / 3600);	$resultado = $resultado - ($hora_ponto * 3600);	$min_ponto = floor($resultado/60);	$resultado = $resultado - ($min_ponto * 60);	return $hora_ponto.":".$min_ponto;?><body background="imagem.bmp">	<form name="form1" method="post" action="validadados.php">		<table border="0">						<th colspan="2"><font color="#CCCCCC" face="Arial, Helvetica, sans-serif"><h1>FOLHA DE PONTO</h1></th>			<tr>				<td><h2>Nome:</h2></td>					<td><select name="<?php echo $nome; ?>"/>				 	<option value=" "> </option>				 	<option value="ana nayara">ANA NAYARA</option>					<option value="andre luiz">ANDRÉ LUIZ</option>					<option value="cleo">CLEO</option>					<option value="cybelle">CYBELLE</option>					<option value="edilandia">EDILÂNDIA</option>					<option value="ewerthon">EWERTHON</option>					<option value="fabiana">FABIANA</option>					<option value="flavia">FLÁVIA</option>					<option value="idalilia">IDALILIA</option>					<option value="jailma">JAILMA</option>					<option value="jeimes">JEIMES</option>					<option value="josineide">JOSENEIDE</option>					<option value="junio">JUNIO</option>					<option value="kaina">KAINÃ</option>					<option value="kathianne">KATHIANNE</option>					<option value="kecia">KÉCIA</option>					<option value="kesia">KÉSIA</option>					<option value="lidiana">LIDIANA</option>					<option value="maira">MAÍRA</option>					<option value="marcelo">MARCELO</option>					<option value="marismar">MARISMAR</option>					<option value="osmar">OSMAR</option>					<option value="othon">OTHON</option>					<option value="patricia">PATRICIA</option>					<option value="rafael">RAFAEL</option>					<option value="regina">REGINA</option>					<option value="ricardo">RICARDO</option>					<option value="rita">RITA</option>					<option value="rosane">ROSANE</option>					<option value="silvana">SILVANA</option>					<option value="termutes">TERMUTES</option>					<option value="thelma">THELMA</option>					<option value="victor">VICTOR</option>					<option value="welkyllane">WELKYLLANE</option>					<option value="zilda">ZILDA</option>				</select>				</td>			</tr>			<tr>				<td><h2>Data:</h2></td>				<td><input type="text" name="data"  maxlength="10" size="8" value="<?php echo $data;?>"/></td>			</tr>			<tr>				<td><h2>Horario de entrada:</h2></td>				<td><input type="text" name="entrada" maxlength="5" size="5" value="<?php echo $entrada;?>"/></td>			<tr>				<td><h2>Horario de saida:</h2></td>				<td><input type="text" name="saida" maxlength="5" size="5" value="<?php echo $saida;?>"/></td>			</tr>			<tr>				<td><h2>Horario de almoço:</h2></td>				<td><input type="text" name="almoco" maxlength="5" size="5" value="<?php echo $almoco;?>"/></td>			</tr>			<tr>				<td colspan="2"><h2><input type="submit" name="registrar" value="REGISTRAR"/><input type="reset" name="limpar" value="LIMPAR"/></td>		</tr>		</table>	</form></body></html>

validadados.php

<?php	$conec;	$bco;	$conectou = 0;		$nome = $_POST['nome'];	$data = $_POST['data'];	$entrada = $_POST['$entrada'];	$saida = $_POST['$saida'];	$almoco = $_POST['$almoco'];		include "conexao.php";	if($conectou) {		$stgsql = "INSERT INTO funcionario VALUES";		$stgsql ="('$nome','$data','entrada','saida','almoco')";		$resultado = mysql_query($stgsql,$conec);		if($resultado){			include "sucessoinclusao.php";		}else{			include "erroinclusao.php";		}?>

conexao.php

<?php$conec = mysql_connect("localhost","root","");mysql_select_db("ponto");if($conec) {	$bco = mysql_select_db("ponto",$conec);	if ($bco) {   		$conectou = 1;	} 	else {  		echo "banco de dados \"ponto\" não encontrado!!!"; 		} 	} 	else {   echo "erro na conexão!!!!"; }?>

o problema é que eu não consigo calcular as horas, por exemplo digito hora de entrada 07:00e hora de saida 13:00, digito também a hora de almoço 01:00 para ser abatida, daí não me retorna em as 05:00 horas trabalhadas, e nem insere os dados no banco, algué poderia me ajudar?obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá galera do imasters! sou novo aqui no forum e queria uma ajudinha de voces,tenho meu programa em php e gostaria que alguém me ajudasse! É o seguinte, tenho o programafolha_ponto

<?php	$meses=array ("janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");	$dia = date ("d", time());	$mes = date ("m", time());	$ano = date ("Y", time());	echo "<b><h3><font color=\"#FFFFFF\">Olá, hoje é dia ". $dia." de ". $meses [$mes-1]." de ".$ano;	$nome = $_POST['nome'];	$data = $_POST['data'];	$entrada = $_POST['$entrada'];	$saida = $_POST['$saida'];	$almoco = $_POST['$almoco'];		$nome = $nome;	$data = $data;	$entrada = explode(":" $entrada);	$saida = explode(":", $saida);	$almoco = explode(":",$almoco);		$acumulador1 = ($entrada[0] * 3600) + ($entrada[1] *60 + $entrada[2];	$acumulador2 = ($saida[0] * 3600) + ($saida[1] *60 + $saida[2];	$acumulador1 = ($almoco[0] * 3600) + ($almoco[1] *60 + $almoco[2];		$resultado = (($acumulador2 - $acumulador1) - $acumulador3);	$hora_ponto = floor($resultado / 3600);	$resultado = $resultado - ($hora_ponto * 3600);	$min_ponto = floor($resultado/60);	$resultado = $resultado - ($min_ponto * 60);	return $hora_ponto.":".$min_ponto;?><body background="imagem.bmp">	<form name="form1" method="post" action="validadados.php">		<table border="0">						<th colspan="2"><font color="#CCCCCC" face="Arial, Helvetica, sans-serif"><h1>FOLHA DE PONTO</h1></th>			<tr>				<td><h2>Nome:</h2></td>					<td><select name="<?php echo $nome; ?>"/>				 	<option value=" "> </option>				 	<option value="ana nayara">ANA NAYARA</option>					<option value="andre luiz">ANDRÉ LUIZ</option>					<option value="cleo">CLEO</option>					<option value="cybelle">CYBELLE</option>					<option value="edilandia">EDILÂNDIA</option>					<option value="ewerthon">EWERTHON</option>					<option value="fabiana">FABIANA</option>					<option value="flavia">FLÁVIA</option>					<option value="idalilia">IDALILIA</option>					<option value="jailma">JAILMA</option>					<option value="jeimes">JEIMES</option>					<option value="josineide">JOSENEIDE</option>					<option value="junio">JUNIO</option>					<option value="kaina">KAINÃ</option>					<option value="kathianne">KATHIANNE</option>					<option value="kecia">KÉCIA</option>					<option value="kesia">KÉSIA</option>					<option value="lidiana">LIDIANA</option>					<option value="maira">MAÍRA</option>					<option value="marcelo">MARCELO</option>					<option value="marismar">MARISMAR</option>					<option value="osmar">OSMAR</option>					<option value="othon">OTHON</option>					<option value="patricia">PATRICIA</option>					<option value="rafael">RAFAEL</option>					<option value="regina">REGINA</option>					<option value="ricardo">RICARDO</option>					<option value="rita">RITA</option>					<option value="rosane">ROSANE</option>					<option value="silvana">SILVANA</option>					<option value="termutes">TERMUTES</option>					<option value="thelma">THELMA</option>					<option value="victor">VICTOR</option>					<option value="welkyllane">WELKYLLANE</option>					<option value="zilda">ZILDA</option>				</select>				</td>			</tr>			<tr>				<td><h2>Data:</h2></td>				<td><input type="text" name="data"  maxlength="10" size="8" value="<?php echo $data;?>"/></td>			</tr>			<tr>				<td><h2>Horario de entrada:</h2></td>				<td><input type="text" name="entrada" maxlength="5" size="5" value="<?php echo $entrada;?>"/></td>			<tr>				<td><h2>Horario de saida:</h2></td>				<td><input type="text" name="saida" maxlength="5" size="5" value="<?php echo $saida;?>"/></td>			</tr>			<tr>				<td><h2>Horario de almoço:</h2></td>				<td><input type="text" name="almoco" maxlength="5" size="5" value="<?php echo $almoco;?>"/></td>			</tr>			<tr>				<td colspan="2"><h2><input type="submit" name="registrar" value="REGISTRAR"/><input type="reset" name="limpar" value="LIMPAR"/></td>		</tr>		</table>	</form></body></html>
validadados.php
<?php	$conec;	$bco;	$conectou = 0;		$nome = $_POST['nome'];	$data = $_POST['data'];	$entrada = $_POST['$entrada'];	$saida = $_POST['$saida'];	$almoco = $_POST['$almoco'];		include "conexao.php";	if($conectou) {		$stgsql = "INSERT INTO funcionario VALUES";		$stgsql ="('$nome','$data','entrada','saida','almoco')";		$resultado = mysql_query($stgsql,$conec);		if($resultado){			include "sucessoinclusao.php";		}else{			include "erroinclusao.php";		}?>
conexao.php
<?php$conec = mysql_connect("localhost","root","");mysql_select_db("ponto");if($conec) {	$bco = mysql_select_db("ponto",$conec);	if ($bco) {   		$conectou = 1;	} 	else {  		echo "banco de dados \"ponto\" não encontrado!!!"; 		} 	} 	else {   echo "erro na conexão!!!!"; }?>
o problema é que eu não consigo calcular as horas, por exemplo digito hora de entrada 07:00e hora de saida 13:00, digito também a hora de almoço 01:00 para ser abatida, daí não me retorna em as 05:00 horas trabalhadas, e nem insere os dados no banco, algué poderia me ajudar?obrigado.
Amigo marcelinho_choc realmente calculos com data e hora são meio chatos, mas com a função abaixo você vai conseguirresolver seu problema facil facil.Crie uma página chamada funchora.php com o seguinte código:
<?php /* Funçao de cálculo de horas. Pega duas datas e duas horas e calcula o quanto tempo em horas tem de uma a outra. Sempre arredonda para o inteiro mais alto. Sintaxe: int tempo(str $data1, str $hora1, srt $data2, str $hora2); Exemplo: tempo("1981-03-20","06:00:00",date("Y-m-d"),date("H:i:s")); Retorna o valor em horas, desde a data do meu nascimento até hoje (!!) By Bluverts - bluverts@terra.com.br */ function tempo($data1,$hora1,$data2,$hora2){ 	$i = split(":",$hora1); 	$j = split("-",$data1); 	$k = split(":",$hora2); 	$l = split("-",$data2); $tempo1 = mktime($i[0],$i[1],$i[2],$j[1],$j[2],$j[0]); $tempo2 = mktime($k[0],$k[1],$k[2],$l[1],$l[2],$l[0]); $calculo = ceil((($tempo2 - $tempo1)/60)/60); $tempo["hora_total"] = $calculo;  $tempo["anos"] = ($calculo-($calculo%(365*24)))/(365*24); $calculo = ($calculo%(365*24)); $tempo["meses"] = ($calculo-($calculo%(30*24)))/(30*24); $calculo = ($calculo%(30*24)); $tempo["semanas"] = ($calculo-($calculo%(7*24)))/(7*24); $calculo = ($calculo%(7*24)); $tempo["dias"] = ($calculo-($calculo%24))/24; $calculo = ($calculo%24); $tempo["horas"] = $calculo; return $tempo; } ?>
de um include da página funchora.php ná página em que você precisa fazer os calculos.e na mesma página, após um SELECT que te dará um array com os dados do banco de dadosvocê poderá fazer desta forma:
<?php $data = date("Y-m-d");$hora = date("H:i:s");// $diferenca = tempo($data,"coloque aqui a váriavel do banco de dados com a hora que deseja calcular",$data,$hora);//ex:$diferenca = tempo($data,$hora_bd,$data,$hora);echo $diferenca['horas'];?>
O código acima vai comparar a hora que veio do banco de dados com a hora atual e te dará a diferença entre elas.Ex: se o funcionário foi almoçar as 13:00 e está registrado que ele fez isto as 13:00 no banco de dados, executandoesta função as 13:30 o resultado de $diferenca['horas'] deverá ser 30 minutos e executando a mesma função as 14:00o resultado deverá ser 1 hora e assim por diante.Tome cuidado apenas com o tipo de resultado que você precisa ter pois executando a mesma função no dia seguinte a 13:30ele vai dar a diferença de 30 minutos novamente. Para este problema você poderá usar o calculo de dias com a data vinda do banco de dados assim você terá a diferença de 1 dia e 3 horas por exemplo:
<?php $data = date("Y-m-d");$hora = date("H:i:s");// $diferenca = tempo("coloque aqui a váriavel do banco de dados com a data que deseja calcular","coloque aqui a váriavel do banco de dados com a hora que deseja calcular",$data,$hora);//ex:$diferenca = tempo($data_bd,$hora_bd,$data,$hora);echo $diferenca['dias'] . " dia(s) e " . $diferenca['horas'] . " hora(s)";?>
Espero ter ajudado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.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.