sap abap 日期处理总结

 一 财务期间处理 T_CODE: OB29

 **取 公司年度变式, 和 货币
  SELECT SINGLE waers periv FROM t001
        INTO (v_waers,v_periv)
        WHERE bukrs = 'HL01'.

**取当前日期所在的财务期间年月
  CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
    EXPORTING
      i_date  = sy-datum
      i_periv = v_periv
    IMPORTING
      e_buper = p_emonth
      e_gjahr = p_gjahr.

 

** 根据会计期间得到月初日期 

  CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'
    EXPORTING
      i_gjahr              = p_gjahr
       i_periv              = v_periv
      i_poper              = p_emonth
   IMPORTING
     e_date               = v_fr_date
   EXCEPTIONS
     input_false          = 1
     t009_notfound        = 2
     t009b_notfound       = 3
     OTHERS               = 4
            .

 

 ***根据会计期间得到月末日期

  CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'                 "取本月最后一天
    EXPORTING
      i_gjahr = p_gjahr                                     "会计年度
      i_periv = v_periv                                     "会计年度变式K4
      i_poper = p_emonth                                    "期间(3位N)''
    IMPORTING
      e_date  = v_to_date.

二 工厂日历处理

    DATA:dat LIKE sy-datum.

**jhzqmax 是最大间隔日期

  dat = sy-datum .

 WHILE i <= jhzqmax.
        i = i + 1 .
        dat =   dat  +  1.
*--------------工厂日历的日期---------------------
        CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
          EXPORTING
            date                = dat
            factory_calendar_id = 'CN'
          IMPORTING
            date                = dat.
      ENDWHILE.
**dat 的结果是推算出 当前日日期dat隔jhzqmax个工作日后的日期。

 

三 普通日期处理

 日期 加减
          

          CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

              EXPORTING

                DATE            = in_date

                DAYS            = 5

                MONTHS          = 0

                SIGNUM          = '+'

                YEARS           = 0

              IMPORTING

                CALC_DATE       = out_date

 

四 ,日期函数汇总

SCA1                           日期:转换
这个函数组里主要是一些转换例程,平时大概用到的机会不多。
BUFFER_CONTROL_SCA1
CONVERSION_EXIT_IDATE_INPUT    External date INPUT conversion exit (e.g. 01JAN1994)
CONVERSION_EXIT_IDATE_OUTPUT   External date OUTPUT conversion exit (e.g. 01JAN1994)
CONVERSION_EXIT_LDATE_OUTPUT   Internal date OUTPUT conversion exit (e.g. YYYYMMDD)
CONVERSION_EXIT_SDATE_INPUT    External date (e.g. 01.JAN.1994) INPUT conversion exit
CONVERSION_EXIT_SDATE_OUTPUT   Internal date OUTPUT conversion exit (e.g. YYYYMMDD)
CONVERT_DATE_TO_EXTERNAL       Conversion: Internal to external date (like screen conversion)
CONVERT_DATE_TO_INTERNAL       Conversion: External to internal date (like screen conversion)
CONV_EXIT_LDATE_OUTPUT_LANGU   Internal date OUTPUT conversion exit (e.g. YYYYMMDD)

 

SCA2                           日历:附加功能
CALENDAR_VISUAL_INFORMATION
CALENDAR_VISUAL_INFORMATION_2
CALENDAR_VISUAL_NEW_SELECTION
CALENDAR_VISUAL_PRESENTATION   visual calendar display (like calendar page)(这个函数可以显示一个带有工具栏的 LIST 形式的日历,当作弹出窗口应该不错。)
CALENDAR_VISUAL_PRESENTATION_2

 

SCA3                           日历:弹出
POPUP_TO_SELECT_MONTH          Popup to choose a month(弹出一个选择年度和月份的对话框,返回选择的年月,选择范围为指定年度的前后50年)

 

SCA4                           日历:时间(日期/时间)
DURATION_DETERMINE             Calendar: Determine duration between two times
END_TIME_DETERMINE             Calendar: Determine end date and time
START_TIME_DETERMINE           Calendar: Determine start date and time

 

SCA5                           Calendar: Additional functions
这个函数组中的函数作用应该比较丰富
DAY_ATTRIBUTES_GET(获得日期的属性)
DAY_NAMES_GET(获得一周内每天的特定语言的名称)
FACTORY_CALENDAR_ATTRIBUTE_GET Calendar: Get Factory Calendar Attributes (Table TFACD)
FACTORY_CALENDAR_GET(获得所有工厂日历)
HOLIDAY_CALENDAR_GET(获得所有假期日历)
HOLIDAY_GET(查询某个指定工厂日历、假期日历下,两个日期间的所有假日。)
MONTH_NAMES_GET(获得每个月的特定语言的名称)

 

SCA6                           Periodic appointments
PERIOD_DIALOG(显示一个期间选择的对话框,其中第一个参数,处理模式有下列可能值: ‘I’,插入;‘D’,删除;‘U’,更新指定日期;‘A’,更新全部日期;‘S’,显示。
PERIOD_DISPLAY_DATES           Display Appointments of a Periodic Appointment
WEEKDAY_GET                    Calendar: Get day of the week
WEEKNR_GET                     Calendar: Fetch Week Number

 

SCAC                           Calendar: Controls
F4_DATE_CONTROL                Display factory calendar or Gregor. calendar and choose a day(这就是我们经常看到的标准 F4 日期选择的弹出窗口。)

 

SCAL                           日历功能
DATE_COMPUTE_DAY               根据日期返回的星期值
DATE_COMPUTE_DAY_ENHANCED
DATE_CONVERT_TO_FACTORYDATE    根据日期返回工厂日历日期
DATE_GET_WEEK                  返回某日期所在的礼拜
EASTER_GET_DATE                返回一个年度的复活节日期(复活节,复活节星期日)
FACTORYDATE_CONVERT_TO_DATE    根据一个工厂日历日期返回的日期
HOLIDAY_CHECK_AND_GET_INFO     检查日期是否是公共假日并在需要时提供信息
LAST_FACTORYDATE_GET           Calendar function: Return last factory date for a factory calendar
WEEK_GET_FIRST_DAY             返回一周的第一天

你可能感兴趣的:(SAP,ABAP技术)