Foro de programación ABAP

SAP / ABAP => Programación ABAP => Mensaje iniciado por: ale12 en 07 de Julio de 2008, 11:12:04 am

Título: Convertir Horas en decimal.
Publicado por: ale12 en 07 de Julio de 2008, 11:12:04 am
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 de Julio de 2008, 03:58:41 pm
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.

Código: [Seleccionar]
    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 de Abril de 2009, 06:37:41 pm
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.
Código: [Seleccionar]
DATA: decimal TYPE abstd.   " p_dec
DATA: horas   TYPE uzeit.   " p_time

Código: [Seleccionar]
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
;)