Autor Tema: Convertir Horas en decimal.  (Leído 20348 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ale12

  • Usuario Completo
  • ***
  • Mensajes: 92
    • Ver Perfil
Convertir Horas en decimal.
« 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.


Desconectado molaci

  • Usuario Sr.
  • ****
  • Mensajes: 113
    • Ver Perfil
Re: Convertir Horas en decimal.
« Respuesta #1 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.

Desconectado molaci

  • Usuario Sr.
  • ****
  • Mensajes: 113
    • Ver Perfil
Re: Convertir Horas en decimal.
« Respuesta #2 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
;)