" Opaaaa, hoje vou mostrar uma função que retorna a quantidade de dias
" entre duas datas, muito usada no modulo HR, Agradecimentos ao nosso
" Parceiro do Blog o Sr. Alê Henrique por este post.
REPORT z_days_between_two_dates.
" Estruturas e tabelas internas
DATA :
it_sflight TYPE TABLE OF sflight,
st_sflight TYPE sflight.
START-OF-SELECTION.
" Seleção de dados para alimentar as datas.
PERFORM : f_select,
" Usa a função pra ver o intervalo de dias entre as datas.
f_trata_dados.
BREAK-POINT.
*&---------------------------------------------------------------------*
*& Form f_select
*&---------------------------------------------------------------------*
FORM f_select .
" Seleção normal somente de 2 linhas
SELECT *
FROM sflight
INTO TABLE it_sflight
UP TO 2 ROWS.
ENDFORM. " f_select
*&---------------------------------------------------------------------*
*& Form f_trata_dados
*&---------------------------------------------------------------------*
FORM f_trata_dados .
" Variáveis locais
DATA :
vl_data1 TYPE sy-datum,
vl_data2 TYPE sy-datum,
vl_teste TYPE i.
BREAK-POINT.
" Alimentação da primeira data
READ TABLE it_sflight INTO st_sflight
INDEX 1.
MOVE st_sflight-fldate TO vl_data1.
" Alimentação da segunda data
READ TABLE it_sflight INTO st_sflight
INDEX 2.
MOVE st_sflight-fldate TO vl_data2.
" Olha a função aeeeeeee.
CALL FUNCTION 'DAYS_BETWEEN_TWO_DATES'
EXPORTING
i_datum_bis = vl_data2 " Data Maior
i_datum_von = vl_data1 " Data Menor
IMPORTING
e_tage = vl_teste. " Dieferença em dias
ENDFORM. " f_trata_dados
Grande Maurão, sempre livrando a galera (principalmente eu) dos apertos! Mandei no seu email uma versão melhorada de um código, retornando a diferença entre datas no formato hh:mm:ss
ResponderExcluirBoa dica, quebra um galhão!
ResponderExcluirParabéns pelo site em geral.
Abraço.
Brigadaum Alê pelo documento que me envio...
ResponderExcluire valeu Willian pelos agradecimentos.... é nois.. rs.