ABAP日期的处理
最近做一个功能,需要得到下周一至周五的日期功能,谷歌度娘一番后,没有找到直接可也使用的函数,只能自己写一个。关于周的函数,可也查看Function Group中的CADA。
*设置变量
data : lv_monday TYPE dats,
lv_sunday TYPE dats,
lv_friday TYPE dats.
*得到当前日期的周一和周日
CALL FUNCTION 'GET_WEEK_INFO_BASED_ON_DATE'
EXPORTING
DATE = SY-DATUM
IMPORTING
* WEEK =
MONDAY = lv_monday
SUNDAY = lv_sunday.
*得到下周一
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
DATE = lv_sunday
DAYS = 1
MONTHS = 0
SIGNUM = '+'
YEARS = 0
IMPORTING
CALC_DATE = lv_monday.
*得到下周五
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
DATE = lv_monday
DAYS = 4
MONTHS = 0
SIGNUM = '+'
YEARS = 0
IMPORTING
CALC_DATE = lv_friday.
得到当前日期是星期几。
data lv_date TYPE p.
*得到星期几
CALL FUNCTION 'DAY_IN_WEEK'
EXPORTING
DATUM = sy-datum
IMPORTING
WOTNR = lv_date.
*转换成汉字
data lt_weekname TYPE STANDARD TABLE of T246.
data wa_weekname TYPE t246.
CALL FUNCTION 'WEEKDAY_GET'
EXPORTING
LANGUAGE = '1'
* IMPORTING
* RETURN_CODE =
TABLES
WEEKDAY = lt_weekname
* EXCEPTIONS
* WEEKDAY_NOT_FOUND = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
RETURN.
ENDIF.
READ TABLE lt_weekname WITH KEY WOTNR = lv_date INTO wa_weekname.
*wa_weekname-LANGT 就是得到的数据.