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ça entre as horas é: " . m2h($diff); |
Amanda Santos (Migrated deleted Agent)
Comments