sábado, 12 de marzo de 2016

Funciones útiles - Fechas y Hora

******************************************************************************** * INFORMACIÓN GENERAL - GENERAL INFORMATION ******************************************************************************** *^ Autor - Author : José Manrique Valderrama *^ Objetivo - Objetive : Funciones útiles para fechas *^ Website : abapejemplos.blogspot.com ******************************************************************************** REPORT zjm_demo_funciones. DATA: ld_datum TYPE sy-datum, ls_dat08 TYPE char8, ls_dat10 TYPE char10, lt_uzeit TYPE sy-uzeit, ls_dia TYPE ish_daytxt, ls_mes TYPE fcltx. START-OF-SELECTION. * Suma días, meses y años a una fecha. CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL' EXPORTING date = sy-datum days = 3 months = 1 signum = '+' years = 0 IMPORTING calc_date = ld_datum. WRITE: / 'Hoy es', sy-datum, 'dentro de 1 mes y 3 días será', ld_datum. * Resta días, meses y años a una fecha. CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL' EXPORTING date = sy-datum days = 3 months = 1 signum = '-' years = 0 IMPORTING calc_date = ld_datum. WRITE: / 'Hoy es', sy-datum, 'hace 1 mes y 3 días fue', ld_datum. * Se cualquier cantidad de tiempo a una fecha y hora CALL FUNCTION 'END_TIME_DETERMINE' EXPORTING duration = 456 *Minutos = MIN, Segundos = 'S', Horas = STD, etc. unit = 'MIN' IMPORTING end_date = ld_datum end_time = lt_uzeit CHANGING start_date = sy-datum start_time = sy-uzeit EXCEPTIONS factory_calendar_not_found = 1 date_out_of_calendar_range = 2 date_not_valid = 3 unit_conversion_error = 4 si_unit_missing = 5 parameters_no_valid = 6 OTHERS = 7. IF sy-subrc EQ 0. WRITE: / 'Hoy es', sy-datum, 'hora', sy-uzeit, ', dentro de 456 minutos será', ld_datum, 'hora', lt_uzeit. ENDIF. *Convierte una fecha de formato externo a interno CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL' EXPORTING date_external = '10.10.2016' IMPORTING date_internal = ls_dat08 EXCEPTIONS date_external_is_invalid = 1 OTHERS = 2. IF sy-subrc EQ 0. WRITE: / 'La fecha 10.10.2016 se representa internamente en SAP como', ls_dat08. ENDIF. *Convierte una fecha de formato interno a externo CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL' EXPORTING date_internal = '20151009' IMPORTING date_external = ls_dat10 EXCEPTIONS date_internal_is_invalid = 1 OTHERS = 2. IF sy-subrc EQ 0. WRITE: / 'La fecha interna 20151009 se visualiza como:', ls_dat10. ENDIF. *Obtiene el nombre del día en el que cae una fecha CALL FUNCTION 'ISH_GET_DAY_OF_WEEK' EXPORTING date = '19850123' IMPORTING day_txt = ls_dia. WRITE: / 'El 23 de enero de 1985 fue un día', ls_dia. *Obtiene el último día del mes CALL FUNCTION 'FKK_LAST_DAY_OF_MONTH' EXPORTING day_in = sy-datum IMPORTING last_day_of_month = ld_datum EXCEPTIONS day_in_no_date = 1 OTHERS = 2. IF sy-subrc EQ 0. WRITE: / 'El último día de este mes es:', ld_datum. ENDIF. *Obtiene el nombre de un mes CALL FUNCTION 'ISP_GET_MONTH_NAME' EXPORTING date = sy-datum language = sy-langu IMPORTING longtext = ls_mes EXCEPTIONS calendar_id = 1 date_error = 2 not_found = 3 wrong_input = 4 OTHERS = 5. IF sy-subrc EQ 0. WRITE: / 'Hoy', sy-datum, 'estamos en el mes de', ls_mes. ENDIF.
Resultado

1 comentario: