ABAP 日期函数
...
ABAP 日期函数
1. 获取输入日期当前月份最后一天的日期
LAST_DAY_OF_MONTHS
DATA GV_DATA TYPE SY-DATUM.
*获取输入日期当前月份最后一天的日期
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
DAY_IN = '20250601'
IMPORTING
LAST_DAY_OF_MONTH = GV_DATA "20250630
* EXCEPTIONS
* DAY_IN_NO_DATE = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ELSE.
WRITE GV_DATA.
ENDIF.
2. 获取输入日期过去N月的日期
CCM_GO_BACK_MONTHS
DATA GV_DATA TYPE SY-DATUM.
*获取输入日期过去N月的日期
CALL FUNCTION 'CCM_GO_BACK_MONTHS'
EXPORTING
CURRDATE = '20250601'
BACKMONTHS = 7
IMPORTING
NEWDATE = GV_DATA "20241101
.
WRITE GV_DATA.
3. 获取输入日期后来N月的日期
MONTH_PLUS_DETERMINE
DATA GV_DATA TYPE SY-DATUM.
*获取输入日期后来N月的日期
CALL FUNCTION 'MONTH_PLUS_DETERMINE'
EXPORTING
MONTHS = 7
OLDDATE = '20250601'
IMPORTING
NEWDATE = GV_DATA. "20260101
WRITE GV_DATA.
4. 获取输入日期该天是星期几/周几
DAY_IN_WEEK
DATA GV_WOTNR TYPE P.
*获取输入日期该天是星期几/周几
CALL FUNCTION 'DAY_IN_WEEK'
EXPORTING
DATUM = '20250601'
IMPORTING
WOTNR = GV_WOTNR"7 => 周日
.
WRITE GV_WOTNR.
5. 将标准日期格式转换为内部数字格式
日期的格式与用户参数有关,转化为内部数字格式时,都为:YYYYMMDD.
DATA GV_DATE TYPE SY-DATUM.
*将标准日期格式转换为内部数字格式
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
DATE_EXTERNAL = '2025.06.01'
* ACCEPT_INITIAL_DATE =
IMPORTING
DATE_INTERNAL = GV_DATE
* EXCEPTIONS
* DATE_EXTERNAL_IS_INVALID = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
WRITE GV_DATE.
6. 比较两个日期大小,返回结果是关系操作符:GT、EQ、LT
比较两个日期大小,返回结果是关系操作符:GT、EQ、LT
TYPE-POOLS TRFF.
DATA LOG_OP TYPE TRFF_TYPE_C_2.
*比较两个日期大小,返回结果是关系操作符:GT、EQ、LT
CALL FUNCTION 'FIMA_DATE_COMPARE'
EXPORTING
I_FLG_INTRADAY = ' '
I_DATE = '20250601'
I_TIME = '000000'
I_SINCL = '0'
I_SULT = ' '
I_COMP_DATE = '20250623'
I_COMP_TIME = '000000'
I_COMP_SINCL = '0'
I_COMP_SULT = ' '
IMPORTING
E_LOG_OP = LOG_OP."LT
WRITE LOG_OP.
7. 获取所有的月份名字信息
获取所有的月份名字信息
*获取所有的月份名字信息
DATA RETURN_CODE TYPE SY-SUBRC.
DATA MONTH_NAMES TYPE STANDARD TABLE OF T247.
CALL FUNCTION 'MONTH_NAMES_GET'
EXPORTING
LANGUAGE = SY-LANGU
IMPORTING
RETURN_CODE = RETURN_CODE
TABLES
MONTH_NAMES = MONTH_NAMES
EXCEPTIONS
MONTH_NAMES_NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
CL_DEMO_OUTPUT=>DISPLAY( MONTH_NAMES ).

8. 为 F4 帮助显示日历,弹出日历对话框,供用户选择日期
*为 F4 帮助显示日历,弹出日历对话框,供用户选择日期
PARAMETERS:P1(8) TYPE C.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P1.
DATA: L_DATE TYPE SY-DATUM.
CALL FUNCTION 'F4_DATE'
EXPORTING
DATE_FOR_FIRST_MONTH = SY-DATUM
* DISPLAY = ' '
* FACTORY_CALENDAR_ID = ' '
* GREGORIAN_CALENDAR_FLAG = ' '
* HOLIDAY_CALENDAR_ID = ' '
* PROGNAME_FOR_FIRST_MONTH = ' '
* DATE_POSITION = ' '
IMPORTING
SELECT_DATE = L_DATE "用户选择后返回的日期
* SELECT_WEEK =
* SELECT_WEEK_BEGIN =
* SELECT_WEEK_END =
* EXCEPTIONS
* CALENDAR_BUFFER_NOT_LOADABLE = 1
* DATE_AFTER_RANGE = 2
* DATE_BEFORE_RANGE = 3
* DATE_INVALID = 4
* FACTORY_CALENDAR_NOT_FOUND = 5
* HOLIDAY_CALENDAR_NOT_FOUND = 6
* PARAMETER_CONFLICT = 7
* OTHERS = 8
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
P1 = L_DATE.
9. 为 F4 帮助显示时间,弹出时间对话框,供用户选择时间
*为 F4 帮助显示时间,弹出时间对话框,供用户选择时间
PARAMETERS:P1(6) TYPE C.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P1.
DATA L_TIME TYPE SY-UZEIT.
CALL FUNCTION 'F4_CLOCK'
EXPORTING
START_TIME = SY-UZEIT
DISPLAY = ' '
IMPORTING
SELECTED_TIME = L_TIME
.
P1 = L_TIME.
参考文献
你认为这篇文章怎么样?
- 0
- 0
- 0
- 0
- 0
- 0