* Boa tarde galera, quem é vivo sempre aparece, hoje vou mostrar
* uma função muito boa que te retorna o intervalo entre duas datas
* em horas, minutos e se for esperto até os segundo, usei essa função
* pra criar uma regra de criticidade das datas onde a empresa deveria
* dar retorno ao cliente deles.
* Vamos lá então porque a função é simples, e de brinde executei a
* rotina de conversão, pra vocês compararem os valores coloquei um
* break-point no meio do processo.
* Bons estudos e espero ter ajudado.
*--------------------------------------------------------------------*
REPORT zfunction_calc_Interval_date_hour.
* Tela de seleão com parametros e um CheckBox caso queira usar a rotina
* de conversão.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
p_date2 TYPE sy-datum, " Data
p_time2 TYPE sy-uzeit. " Hora
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
PARAMETERS :
cb_conv AS CHECKBOX. " Rotina de Conversão.
SELECTION-SCREEN END OF BLOCK b2.
DATA :
l_tdiff TYPE tvro-fahztd,
l_duration(10),
l_hour_bpm TYPE i
.
* Essa é a função.... Simples e rápida.
CALL FUNCTION 'SD_CALC_DURATION_FROM_DATETIME'
EXPORTING
i_date1 = sy-datum
i_time1 = sy-uzeit
i_date2 = p_date2
i_time2 = p_time2
IMPORTING
e_tdiff = l_tdiff
EXCEPTIONS
invalid_datetime = 1
OTHERS = 2.