Já vi alguns problemas... (problemas que eu acho que já tive quando fiz esse tipo de conta, na época em que eu brincava com QBasic - ah, bons tempos aqueles...)<br><br><div><span class="gmail_quote">On 11/16/06, <b class="gmail_sendername">
André Garcia Carneiro</b> <<a href="mailto:andre.garcia.carneir@terra.com.br">andre.garcia.carneir@terra.com.br</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
#Calculando a hora:<br> my $hora_calc = $otime[0] + (($time[0] % 24) ); #Descobri por acaso, por tentativa e erro....<br><br>#Se o resultado der maior que 24, deve-se tirar 24. A diferença é exatamente a hora que eu estou calculando.
<br> $hora_calc -= 24 if($hora_calc > 24);</blockquote><div><br><br>Sugiro isso aqui, que faz mais sentido:<br>my $hora_calc = ($otime[0] + $time[0]) % 24;<br><br>(afinal, você quer somar as horas, mas quer que "dê a volta" no 24. A divisão inteira por 24 dá o número de dias,
<br>o resto da divisão dá as horas que não completam um dia)<br> </div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">#Somando os minutos
<br><br>#Para somar os minutos, simplesmente some os minutos dados em $hora_inicial. Se for maior do que 59,<br>#então deve-se somar a hora + 1, e se obter a diferenca dos minutos que passaram de 59.<br><br> print $otime[1] + $time[1];
<br><br> $min_calc = $otime[1] + $time[1];<br> if($min_calc > 59)<br> {<br> $min_calc -= 60;<br> $min_calc = abs $min_calc;<br> $hora_calc += 1;<br> }
</blockquote><div><br><br>A mesma coisa eu aplicaria aqui:<br>my $min_calc = $otime[1] + $time[1];<br><br>$hora_calc += int ($min_calc / 60); # a divisão inteira por 60 dá a qtd de horas inteiras<br>$min_calc = $min_calc % 60; # e o resto da divisão dá os minutos que não completam 1 hora
<br><br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">print "\nProxima HORA = $hora_calc\:".$min_calc." \n";
</blockquote><div><br>E aqui eu ainda tascava um <br><br>printf "\nProxima HORA = %2d:%2d\n", $hora_calc, $min_calc;<br><br>pra não ficar com horas "7:0", "7:30", "8:0", etc... ;-)<br>
</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">##FIM DO SCRIPT<br><br>Claro, esse foi o que eu usei para testar, mas a ideia foi usada para resolver isso via web.
<br><br><br><br>Cheers!</blockquote><div><br></div></div>E sim, claro que TIMTOWTDI, principalmente do jeito "certo"... <br>Outra opção POG era converter tudo pra minutos, trabalhar com minutos, e depois transformar em hh:mm ( h = int ( x / 60) % 24, m = x % 60 )
<br><br><br>ps: agora que me dei conta, depois de<br><br>$hora_calc += int ($min_calc / 60); # a divisão inteira por 60 dá a qtd de horas inteiras<br><br>a hora pode ter passado de 24... talvez fosse melhor deixar pro fim das contas issaqui:
<br><br>$hora_calc = $hora_calc % 24;<br><br>Em vez de calcular o % 24 lá no começo...<br><br>-- <br>[]s<br>Wendel<br><br>"Não ajustar o auto-ajuste" - <a href="http://wendel.scardua.net/">http://wendel.scardua.net/
</a>