一 财务期间处理 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 返回一周的第一天