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 就是得到的数据.

posted @ 2012-02-10 14:07  在程序的路上  阅读(348)  评论(0编辑  收藏  举报