Iniciar uma conversa

Calcular a diferença entre duas horas(Hora/Minuto)

Veremos neste arquivo como calcular a diferença, de hora e minuto, entre duas horas diferentes.

Para o exemplo, teremos a seguinte situação: Uma aplicação do tipo Controle, com dois campos do tipo hora(hora, hora2), que serão passados à uma aplicação do tipo Blank, esta que terá dois métodos(h2m, m2h) que farão a conversão de hora para minuto e minuto para hora, respectivamente.

Primeiro crie uma aplicação do tipo "Controle", e insira dois campos do tipo hora:

Depois, vá até o evento onValidateSuccess, e insira o seguinte código:

Código-fonte:
if({hora} > {hora2}){

    sc_redir("blank_1", xxx = {hora}; yyy = {hora2});
    
}else{

    sc_error_message("Cálculo imcompatível: Hora 1 deve ser maior que Hora 2");
}

 

Este código redireciona para a nossa aplicação blank, passando como parâmetro os campos hora através das variáveis xxx e yyy. Porém, tal situação só ocorrerá se o campo {hora} for maior que {hora2}, caso contrário será exibida uma mensagem de erro.

Em seguida, crie a aplicação blank e nela crie os métodos que converterão nossos dados, veja abaixo os códigos de ambos:

  • h2m:

Código-fonte:
$t = explode(":", $hours);
$h = $t[0];

if(isset($t[1])){
    $m = $t[1];
}else{
    $m = "00";
}

$mm = ($h * 60)+$m;

return $mm;

Obs: Lembre-se de adicionar um parâmetro clicando no ícone "Atributo", que é o primeiro da barra de ferramentas superior dentro do método.

  • m2h:

Código-fonte:
$hs = $minutes/60;
$t = explode('.', $hs);
$h = $t[0];

if(isset($t[1])){
    $ms = $hs-$h;
    $m = $ms*60;
}else{
    $m = "00";
}

if($h<10){
    return "0" . $h . ":" . $m;
}else{
    return $h . ":" . $m;
}

Obs: Lembre-se de adicionar um parâmetro clicando no ícone "Atributo", que é o primeiro da barra de ferramentas superior dentro do método.

Por fim, faremos a chamada dos métodos criados à pouco, no evento onExecute da blank. Veja como ficou abaixo:

Código-fonte:
//Converte a hora 1 para minutos
$hora1ToMinutes = h2m([xxx]);

//Converte a hora 2 para minutos
$hora2ToMinutes = h2m([yyy]);

//Calcula a diferença de minutos
$diff = $hora1ToMinutes - $hora2ToMinutes;

//Transforma a direfença para horas novamente
echo "A diferen&ccedil;a entre as horas &eacute;: " . m2h($diff);

Escolher arquivos ou arraste e solte arquivos
Esse artigo foi útil?
Sim
Não
  1. Amanda Santos (Migrated deleted Agent)

  2. Publicado
  3. Atualizado

Comentários