Ir para conteúdo
Fórum Script Brasil
  • 0

Contagem De Tempo Total De Um Quarto De Motel Em Php,alguém Pode Me Aj


Guest Denilson Rodrigues

Pergunta

Guest Denilson Rodrigues

E aí galera alguém pode me ajudar?estou fazendo um sistema para motel e tenho que fazer um algoritmo para contagem do tempo total que o cliente está no quarto,então fiz assim:Quando o quarto é ocupado ele anota a hora e minuto daquele momento no formato("Y/i"),por exemplo,se fosse 13:07,ele gravaria no banco de dados ("13/07") e para contar o tempo total fiz o script abaixo:

$hora= date("H/i",time());    [b]//Pega a hora atual[/b]
  $novoformato=explode("/",$hora);  [b]//Separa em strigs[/b]
  include("../config.php"); [b] //aqui contém a conexão com o banco,oqual tem a hora de ocupação[/b]
  $obterhora=mysql_query("SELECT * FROM contas WHERE id_conta='".$_SESSION["idc"]."'");  [b] //seleciono a hora de ocupação[/b]
  $obterhoradeentrada=mysql_fetch_array($obterhora);  [b]//Boto em um array associativo[/b]
  $novoformat=explode("/",$obterhoradeentrada["tempoinicial"]);[b] //faço strigs com o resultado[/b]
  $t=60 + $novoformato[1] - $novoformat[1];   [b]//Pego 60 somo com a hora atual e subtraio da de ocupação[/b]
  $g=$novoformato[1] - $novoformat[1]; [b]/*g é para quando as horas forem iguais,só vai ser usado lá em baixo,depois daqui é só lógica,o problema é que não tá dando certo,alguém pode me dar alguma idéia de como faer certo,já tentei de muitas formas,mas ainda não encontrei uma forma certa de faer,,valeu galera */[/b]
  if (($novoformato[0] > $novoformat[0]) AND ($t > 60)) {
                                         $t=$t-60;
                                         $h=$novoformato[0] - $novoformat[0] + 1;
                                         mysql_query("UPDATE contas SET tempototal='$h/$t' WHERE id_conta='".$_SESSION["idc"]."'");
                                         }
  if (($novoformato[0] < $novoformat[0]) AND ($t < 60)) {
                                         $h=24 - $novoformat[0] + $novoformato[0];
                                         mysql_query("UPDATE contas SET tempototal='$h/$t' WHERE id_conta='".$_SESSION["idc"]."'");
                                         }
  if (($novoformato[0] > $novoformat[0]) AND ($t < 60)) {
                                         $h=$novoformato[0] - $novoformat[0];
                                         mysql_query("UPDATE contas SET tempototal='$h/$t' WHERE id_conta='".$_SESSION["idc"]."'");
                                         }
  if (($novoformato[0] < $novoformat[0]) AND ($t > 60)) {
                                         $t=$t-60;
                                         $h=24 - $novoformat[0] + $novoformato[0] + 1;
                                         mysql_query("UPDATE contas SET tempototal='$h/$t' WHERE id_conta='".$_SESSION["idc"]."'");
                                         }
  if ($novoformato[0] == $novoformat[0]) {
                                         mysql_query("UPDATE contas SET tempototal='0/$g' WHERE id_conta='".$_SESSION["idc"]."'");
                                         }
  $resultado=mysql_query("SELECT * FROM contas WHERE id_conta='".$_SESSION["idc"]."'");
  $c=mysql_fetch_array($resultado);
  $j=explode("/",$c["tempototal"]);
  echo $j[0] . " horas e " . $j[1] ." minutos.";  [b]//Imprimi na tela o tempo total do cliente. [/b]
  ?>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Para cálculo de datas sempre use uma referência completa, por exemplo use a função time() para pegar o timestamp de entrada e de saída do quarto, pronto, ai bastar substrair o timestamp de saída pelo de entrada e ai você terá quantos segundos eles ficaram no quarto, para saber horas/minutos basta ir dividindo por 60 igual se aprende no colégio...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...