Hola.
Aunque ha pasado mucho tiempo desde la pregunta, aprovecho para dejar una función que he encontrado y me va de maravilla.
La función es...
SD_CALC_DURATION_FROM_DATETIME y lo que hace es devolver en horas la diferencia entre dos fechas/horas.
CALL FUNCTION 'SD_CALC_DURATION_FROM_DATETIME'
EXPORTING
i_date1 = gt_tmp-fecha_ini " 04.02.2011
i_time1 = gt_tmp-hora_ini " 08:12:49
i_date2 = gt_tmp-fecha_fin " 04.02.2011
i_time2 = gt_tmp-hora_fin " 17:29:15
IMPORTING
e_tdiff = lf_tdiff " Resultado = 9:16
e_date2_early = lf_date2_early
EXCEPTIONS
invalid_datetime = 1
OTHERS = 2.Después existe también esa otra función
L_MC_TIME_DIFFERENCE que es similar a la primera, pero en este caso te devuelve la diferencia en minutos.
Espero que os sirvan estas dos funciones.