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'. **********************************************************************