DATE_GET_WEEK

来源:互联网 发布:json格式化工具 编辑:程序博客网 时间:2024/06/11 11:37

通过 Function Module 获得日期所在的周数
所属 Function Group:SCAL

DATA:today TYPE d VALUE ’20090115′,
      week TYPE scal-week."YYYYWW

CALL FUNCTION ‘DATE_GET_WEEK’
  EXPORTING
    date         = today"SCAL-DATE = sy-datum = D
  IMPORTING
    week         = week
  EXCEPTIONS
    date_invalid = 1
    OTHERS       = 2.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

WRITE:week+4(2).

结果:03
————
注意:
1、返回参数 week 里的格式为 YYYYWW ,所以需要使用偏移量( week+4(2) )获得周数。
2、该函数无法处理 1901.01.01 之前及9999.12.31之后的日期,相关源代码:
*—START
  if date gt ’99991231′.
    raise date_invalid.
  endif.

  s_absolut_date = date."s_absolut_date type p
  if s_absolut_date lt 367.            "367 = 01.01.1901
    raise date_invalid.
  endif.