quarta-feira, 25 de abril de 2012

Função - DAYS_BETWEEN_TWO_DATES

  "  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 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

3 comentários:

  1. 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

    ResponderExcluir
  2. Boa dica, quebra um galhão!
    Parabéns pelo site em geral.

    Abraço.

    ResponderExcluir
  3. Brigadaum Alê pelo documento que me envio...
    e valeu Willian pelos agradecimentos.... é nois.. rs.

    ResponderExcluir