Данный ФМ возвращает количество полных лет между 2-мя датами.
Данные на выходе представлены в текстовом формате. Длина 3 символа.
FUNCTION ZRH_SEARCH_FULL_YEAR.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(I_BEGDA) TYPE DATUM
*" VALUE(I_ENDDA) TYPE DATUM
*" EXPORTING
*" VALUE(E_AGE) TYPE CHAR3
*"----------------------------------------------------------------------
data:
t_years type int2.
check I_ENDDA >= I_BEGDA.
*** разница в годах
t_years = I_ENDDA(4) - I_BEGDA(4).
*** проверяем, был ли ДР в этом году или нет, если нет то -1 год
if I_ENDDA+4(2) < I_BEGDA+4(2).
t_years = t_years - 1.
elseif I_ENDDA+4(2) = I_BEGDA+4(2).
if I_ENDDA+6(2) < I_BEGDA+6(2).
t_years = t_years - 1.
endif.
endif.
E_AGE = t_years.
SHIFT E_AGE LEFT DELETING LEADING space.
ENDFUNCTION.
Данные на выходе представлены в текстовом формате. Длина 3 символа.
FUNCTION ZRH_SEARCH_FULL_YEAR.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(I_BEGDA) TYPE DATUM
*" VALUE(I_ENDDA) TYPE DATUM
*" EXPORTING
*" VALUE(E_AGE) TYPE CHAR3
*"----------------------------------------------------------------------
data:
t_years type int2.
check I_ENDDA >= I_BEGDA.
*** разница в годах
t_years = I_ENDDA(4) - I_BEGDA(4).
*** проверяем, был ли ДР в этом году или нет, если нет то -1 год
if I_ENDDA+4(2) < I_BEGDA+4(2).
t_years = t_years - 1.
elseif I_ENDDA+4(2) = I_BEGDA+4(2).
if I_ENDDA+6(2) < I_BEGDA+6(2).
t_years = t_years - 1.
endif.
endif.
E_AGE = t_years.
SHIFT E_AGE LEFT DELETING LEADING space.
ENDFUNCTION.
Комментариев нет:
Отправить комментарий