Sumar fracciones de hora en un campo fecha

Existen muchas funciones para sumar horas a fechas en ABAP, pero siempre requieren que las horas a sumar esten en formato HHMMSS, pero ¿que pasa si lo que quieres es sumar 1.354 horas? y no tienes el dato en formato HHMMSS, recientemente necesitaba hacer esto y encontré una solución muy practica.

 "Declarar una variable de tipo t
 data: hora_t type t,
      horas_sumar type p length 4 decimals 3 .

 "Cantidad de horas a sumar
 horas_sumar = '1.25'.

 "Esto hara el truco, y tendremos algo asi: 011500
 "en formato HHMMSS, una hora con 15 minutos
 hora_t = horas_sumar * 3600.

Ahora si lo que queremos es sumar esas horas a una fecha, podemos usar el siguiente código

  "Declarar una variable de tipo t
  DATA: hora_t TYPE t,
       horas_sumar TYPE p LENGTH 4 DECIMALS 3,
       hora TYPE t,
       fecha TYPE d .

  "Cantidad de horas a sumar
  horas_sumar = '1.25'.

  "Esto hara el truco, y tendremos algo asi: 011500
  "en formato HHMMSS
  hora_t = horas_sumar * 3600.

  "ahora podemos utilizar las demas f
  CALL FUNCTION 'C14B_ADD_TIME'
    EXPORTING
      i_starttime = sy-timlo "o la hora que deseemos
      i_startdate = sy-datum "o la fecha que deseemos
      i_addtime   = hora_t
    IMPORTING
      e_endtime   = hora "Nueva hora, despues de sumar 1.25
      e_enddate   = fecha. "Nueva fecha, puede se que corra al siguiente dia

Sumar fracciones de hora en un campo fecha

2 comentarios en «Sumar fracciones de hora en un campo fecha»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll hacia arriba