文章目录
2.获取两个日期之间的天、周、月、年数(HR_99S_INTERVAL_BETWEEN_DATES)
3.获取日期期间的天数(DAYS_BETWEEN_TWO_DATES)
5.获的两个日期之间的分钟数(DELTA_TIME_DAY_HOUR)
7.转换日期为内部数字格式(CONVERT_DATE_TO_INTERNAL)
8.获取当前日期周周一周日的日期及年的周数(GET_WEEK_INFO_BASED_ON_DATE)
9.获取该年第几周的第一天日期(WEEK_GET_FIRST_DAY)
3.年月搜索帮助弹框(POPUP_TO_SELECT_MONTH)
三.时间12->24小时制转换(HRVE_CONVERT_TIME)
1.检查日期(DATE_CHECK_PLAUSIBILITY)
2.检查时间(TIME_CHECK_PLAUSIBILITY)
总结
前言
ABAP时间相关函数、搜索帮助,持续更新。。。
一:日期相关函数
1.获取输入日期月份的最后一天
1.1:LAST_DAY_OF_MONTHS
*&---------------------------------------------------------------------*
*& 程 序 名:YTEST_001
*& 程序描述:ABAP 时间相关函数
*& 创 建 者:JIANGYH
*& 创建日期:2023/11/22
*&---------------------------------------------------------------------*
*& 版本 修改者(公司) 日期 修改描述
*& 1.0.0 XXXX YYYYMMDD 创建程序
*&---------------------------------------------------------------------*
REPORT ytest_001.
DATA lv_datum TYPE sy-datum.
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
day_in = '20240423' "输入日期
IMPORTING
last_day_of_month = lv_datum "返回日期:20240430
EXCEPTIONS
day_in_no_date = 1
OTHERS = 2.
1.2:DATE_GET_MONTH_LASTDAY
*&---------------------------------------------------------------------*
*& 程 序 名:YTEST_001
*& 程序描述:ABAP 时间相关函数
*& 创 建 者:JIANGYH
*& 创建日期:2023/11/22
*&---------------------------------------------------------------------*
*& 版本 修改者(公司) 日期 修改描述
*& 1.0.0 XXXX YYYYMMDD 创建程序
*&---------------------------------------------------------------------*
REPORT ytest_001.
DATA:lv_data TYPE sy-datum.
CALL FUNCTION 'DATE_GET_MONTH_LASTDAY'
EXPORTING
i_date = '20240401'
IMPORTING
e_date = lv_data. " 20240430
BREAK-POINT.
1.3:RP_LAST_DAY_OF_MONTHS
*&---------------------------------------------------------------------*
*& 程 序 名:YTEST_001
*& 程序描述:ABAP 时间相关函数
*& 创 建 者:JIANGYH
*& 创建日期:2023/11/22
*&---------------------------------------------------------------------*
*& 版本 修改者(公司) 日期 修改描述
*& 1.0.0 XXXX YYYYMMDD 创建程序
*&---------------------------------------------------------------------*
REPORT ytest_001.
DATA:lv_data TYPE sy-datum.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
day_in = '20240423' "输入日期
IMPORTING
last_day_of_month = lv_data "返回最后一天日期:20240430
EXCEPTIONS
day_in_no_date = 1
OTHERS = 2.
BREAK-POINT.
1.4:BKK_GET_MONTH_LASTDAY
*&---------------------------------------------------------------------*
*& 程 序 名:YTEST_001
*& 程序描述:ABAP 时间相关函数
*& 创 建 者:JIANGYH
*& 创建日期:2023/11/22
*&---------------------------------------------------------------------*
*& 版本 修改者(公司) 日期 修改描述
*& 1.0.0 XXXX YYYYMMDD 创建程序
*&---------------------------------------------------------------------*
REPORT ytest_001.
DATA:lv_data TYPE sy-datum.
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
i_date = '20240423' "输入日期
IMPORTING
e_date = lv_data. "返回最后一天日期:20240330
BREAK-POINT.
2.获取两个日期之间的天、周、月、年数(HR_99S_INTERVAL_BETWEEN_DATES)
*&---------------------------------------------------------------------*
*& 程 序 名:YTEST_001
*& 程序描述:ABAP 时间相关函数
*& 创 建 者:JIANGYH
*& 创建日期:2023/11/22
*&---------------------------------------------------------------------*
*& 版本 修改者(公司) 日期 修改描述
*& 1.0.0 XXXX YYYYMMDD 创建程序
*&---------------------------------------------------------------------*
REPORT ytest_001.
DATA: lv_d TYPE i,
lv_w TYPE i,
lv_m TYPE i,
lv_y TYPE i.
DATA month_tab TYPE TABLE OF p99sg_month_tab_row.
CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'
EXPORTING
begda = '20230423' " 开始日期
endda = '20240423' " 截止日期
IMPORTING
days = lv_d " 返回天数:367
c_weeks = lv_w " 返回周数:52
c_months = lv_m " 返回月数:12
c_years = lv_y " 返回年数:1
month_tab = month_tab. " 期间月份首尾日
*month_tab:
*05 2023 20230501 20230531
*06 2023 20230601 20230630
*07 2023 20230701 20230731
*08 2023 20230801 20230831
*09 2023 20230901 20230930
*10 2023 20231001 20231031
*11 2023 20231101 20231130
*12 2023 20231201 20231231
*01 2024 20240101 20240131
*02 2024 20240201 20240229
*03 2024 20240301 20240331
BREAK-POINT.
3.获取日期期间的天数(DAYS_BETWEEN_TWO_DATES)
*&---------------------------------------------------------------------*
*& 程 序 名:YTEST_001
*& 程序描述:ABAP 时间相关函数
*& 创 建 者:JIANGYH
*& 创建日期:2023/11/22
*&---------------------------------------------------------------------*
*& 版本 修改者(公司)