Foro de programación ABAP

Programación => Programación ABAP => Mensaje iniciado por: ale12 en 07 Jul 2008, 11:12

Título: Convertir Horas en decimal.
Publicado por: ale12 en 07 Jul 2008, 11:12
Hola,

existe alguna función que me convierta horas en decimales?

Ejemplo:
- una hora es igual a 1,00.
- treinta minutos es igual a 0,50 horas.

Título: Re: Convertir Horas en decimal.
Publicado por: molaci en 07 Jul 2008, 15:58
No conozco ninguna función, pero lo puedes hacer mas o menos como este ejemplo:

Multiplicas las horas por 60 y le sumas los minutos, con esto obtienes los minutos totales.

Un ejemplo:
Una hora y 30 minutos son 1,50 en decimales.

1 * 60 + 30 = 90 minutos.
90 minutos dividido entre 60 = 1,50.

    var_horas_dec = sy-uzeit(2) * 60 + sy-uzeit+2(2).
    var_tiempo_decimal = var_horas_dec / 60.



Un saludo.
Título: Re: Convertir Horas en decimal.
Publicado por: molaci en 14 Abr 2009, 18:37
Me ha pasado el caso contrario... he tenido que pasar de formato decimal a horas.

Me he creado la siguiente función... aquí lo dejo por si le viene bien a alguien.

DATA: decimal TYPE abstd.   " p_dec
DATA: horas   TYPE uzeit.   " p_time



FORM dec_to_time  USING    p_dec
                           p_time.
  DATA: str1    TYPE string,
        str2    TYPE string,
        lf_text TYPE string.

  MOVE p_dec TO lf_text.
  SPLIT lf_text AT '.' INTO: str1 str2.
  MOVE: str1 TO p_time(2).
  p_time+2(2) = str2 * 6 / 10.

ENDFORM.                    " DEC_TO_TIME

;)