sem.Ponto Valeu pela grande ajuda, ficou bom mesmo agora tá rodando legal, acrescentei no final a definição de codigo, quanto a tabela vou mudar para time, melhor garantir.
if($tempo->positivo != $tempo->negativo)
{
$cod = ($tempo->positivo > $tempo->negativo) ? "33333" : "00172";
}
else
{
$cod = "00000";
}
- Fórum WMO
- → Viewing Profile: Posts: carlosins
Community Stats
- Group Usuários
- Active Posts 19
- Profile Views 533
- Member Title Novato no fórum
- Age Age Unknown
- Birthday Birthday Unknown
-
Sexo
Não informado
0
Neutral
User Tools
Posts I've Made
In Topic: Calculo De DiferenÇa De Horas
18/11/2009, 18:52
In Topic: Calculo De DiferenÇa De Horas
16/11/2009, 20:40
Spark, toda ajuda é bem vinda, o campo dia tem o formato date.
Sem Ponto. Vou fazer o teste recomendado.
Sem.Ponto, primeiro teste: Tá pegando certo.
Array ( [0] => stdClass Object ( [segundos] => 7200 [oco] => 00172 ) [1] => stdClass Object ( [segundos] => 86400 [oco] => 33333 ) )
Segundo teste:
Array ( [0] => stdClass Object ( [segundos] => 7200 [oco] => 00172 ) [1] => stdClass Object ( [segundos] => 86400 [oco] => 33333 ) )
echo na $resultado
93600
descobri ele não entrava na condição $row->OCO == 33333 porque estava com zeros 0C0 e é com OCO, o resultado deu certo mesmo com varchar não cheguei nem a mudar, pois antes já dava certo dessa forma, vou testa a mudança para ver o que ocorre.
Indago mas uma questão, como o resultado está em minutos pode me ajudar na conversão para exibição em horas:minutos.
Sem Ponto. Vou fazer o teste recomendado.
Sem.Ponto, primeiro teste: Tá pegando certo.
Array ( [0] => stdClass Object ( [segundos] => 7200 [oco] => 00172 ) [1] => stdClass Object ( [segundos] => 86400 [oco] => 33333 ) )
Segundo teste:
Array ( [0] => stdClass Object ( [segundos] => 7200 [oco] => 00172 ) [1] => stdClass Object ( [segundos] => 86400 [oco] => 33333 ) )
echo na $resultado
93600
descobri ele não entrava na condição $row->OCO == 33333 porque estava com zeros 0C0 e é com OCO, o resultado deu certo mesmo com varchar não cheguei nem a mudar, pois antes já dava certo dessa forma, vou testa a mudança para ver o que ocorre.
Indago mas uma questão, como o resultado está em minutos pode me ajudar na conversão para exibição em horas:minutos.
In Topic: Calculo De DiferenÇa De Horas
16/11/2009, 18:03
O print_r deu o seguinte:
stdClass Object ( [positivo] => 0 [negativo] => 93600 )
O campo jornidf é varchar
Sim alterei acrescentei o seguinte
$resultado = $resultado/3600;
echo $resultado;
stdClass Object ( [positivo] => 0 [negativo] => 93600 )
O campo jornidf é varchar
Sim alterei acrescentei o seguinte
$resultado = $resultado/3600;
echo $resultado;
In Topic: Calculo De DiferenÇa De Horas
16/11/2009, 15:00
Entendi, ficou bom mesmo vou testar.
'' sem.Ponto testei e deu erro, ele soma tudo, coloquei no tabela 02:00 para o codigo 00172 e tres codigos 33333 com 08:00 cada o que daria 24 de credito contra 02 de debito o resultado está gerando 26:00 e não 24:00, o que poderia ser?Entendi, ficou bom mesmo vou testar.
In Topic: Calculo De DiferenÇa De Horas
15/11/2009, 20:07
Muito obrigado pela dica, ficou bom o codigo mas ainda tenho um problema no else não posso somar todos os codigos restantes preciso somar apenas os grupos indicados 00172 e 55555, então troquei para elseif abaixo, mas não está somando.
Me desculpe mas ainda tenho muito a aprender.
elseif($row->OCO == 00172 || $row->OCO == 55555)
{
$tempo->negativo += $row->segundos;
}
Me desculpe mas ainda tenho muito a aprender.
elseif($row->OCO == 00172 || $row->OCO == 55555)
{
$tempo->negativo += $row->segundos;
}
Não era bem o que eu estava pensando que fosse...
Bom, você pode fazer assim:// Essa query me retorna 3 linhas, cada linha contém a soma dos segundos de cada ocorrência do usuário $sql = mysql_query("SELECT SUM(TIME_TO_SEC(JORNDIF)) as segundos, OCO FROM sua_tabela_aqui WHERE SIAPE='".$mat."' GROUP BY OCO"); // Nas variáveis declaradas abaixo, em $tempo->positivo vai entrar os segundos da OCO 33333 e em $tempo->negativo vai entrar a soma da OCO 55555 e OCO 00172 $tempo->positivo = 0; $tempo->negativo = 0; // Faço o loop nas 3 linhas retornadas na query while ($row = mysql_fetch_object($sql)) { // se OCO é 33333, jogo os segundos em $tempo->positivo if ($row->OCO == 33333) { $tempo->positivo = $row->segundos; } // senão vou somando as outras OCO em $tempo->negativo else { $tempo->negativo += $row->segundos; } } // Verifico qual variável tem o maior valor e faço o cálculo. O resultado é em segundos. $resultado = ($tempo->positivo > $tempo->negativo) ? $tempo->positivo - $tempo->negativo : $tempo->negativo - $tempo->positivo;
Acho que está tudo certo, qualquer dúvida, poste.
- Fórum WMO
- → Viewing Profile: Posts: carlosins
- Privacy Policy
- Regras ·