Categorias

Conversão de Horas para Minutos e Vice-Versa

Informação fornecida por Douglas Martins de Azevedo.

Esse exemplo que segue abaixo , esta levando em consideracao:
– Minutos sem segundos, ex: 200 minutos ( type i ).
– horas com minutos, ex: 2,30 ( type p decimals 2).

*********************************************************************
PARAMETERS:
p_hour(05) TYPE p DECIMALS 2,
p_min TYPE i.

DATA:
v_dec(05) TYPE p DECIMALS 2, " Parte decimal da hora (minutos)
v_int TYPE i, " Parte Inteira da hora (hora)
v_hour(05) TYPE p DECIMALS 2, " Resultado da conversao p/ horas
v_min TYPE i, " Resultado da conversao p/ minutos
v_aux TYPE i. " Auxiliar p/ exibicao na tela

START-OF-SELECTION.

*==* Converte de Minutos p/ Hora *=============================*
v_hour = p_min / 60.

v_int = TRUNC( v_hour ). " Horas
v_dec = FRAC( v_hour ). " Minutos

* Conversao dos minutos ( De decimal p/ minutos )
v_dec = ( v_dec / 100 ) * 60.

** Horas
v_hour = v_int + v_dec.
*==============================================================*

*==* Converte de Horas p/ Minutos *============================*
v_int = TRUNC( p_hour ).

* Separa a parte decimal, que ja esta em minutos
v_dec = FRAC( p_hour ).

v_min = v_int * 60.

** Minutos
v_min = v_min + ( v_dec * 100 ).
*==============================================================*

*====* Rotina apenas p/ exibição
v_int = TRUNC( p_hour ).
v_dec = FRAC( p_hour ).
v_aux = v_dec * 100.

WRITE: / v_int , 'Horas e', v_aux , 'minutos =', v_min, 'Minutos'.

v_int = TRUNC( v_hour ).
v_dec = FRAC( v_hour ).
v_aux = v_dec * 100.

WRITE: / p_min, 'minutos =', v_int , 'Horas e', v_aux , 'minutos'.

**********************************************************************