ABAP常用日期函数总结

更新时间:2023-11-18 16:30:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ABAP 常用日期函数总结

WEEK的函数:function group:CADA

1.计算两个日期间的工作天数,即除双休日之外的天数

DATE_CONVERT_TO_FACTORYDATE HR_HK_DIFF_BT_2_DATES

2.根据系统当前时间 找到上月的第一天和最后一天。

CALL FUNCTION 'FIMA_DATE_CREATE'

EXPORTING

i_date = sy-datum * I_FLG_END_OF_MONTH = ' ' * I_YEARS = 0 I_MONTHS = '-1' * I_DAYS = 0 * I_CALENDAR_DAYS = 0 I_SET_LAST_DAY_OF_MONTH = 'X' IMPORTING

E_DATE = lastdate. * E_FLG_END_OF_MONTH =

* E_DAYS_OF_I_DATE = .

其中,lastdate为上月最后一天。

Firstday是上月第一天

Concatenate lastdate+(6)'01' into firstday.

3.当天是当年的第几周

DATE_GET_WEEK

4.得到该周第一天

Week_get_first_day

5.查找当前月份以前的月份(比如现在是4月份,如果我需要知道六个月以前的月份)

ccm_go_back_months rp_calc_date_in_interval

6.获取两日期之间天数函数:

fima_days_and_months_and_years

7.取得当月的第一天和最后一天

Concatenate sy-datum(6)'01' into so_date-low.

Call function'BKK_GET_MONTH_LASTDAY'

EXPORTING

i_date = SY-DATUM * IMPORTING

E_DATE = so_date-high.

So_date-sign = 'I' . So_date-option = 'BT'. Append so_date.

8.Rp_calc_date_in_interval 年月日加减 9.DATE_CHECK_PLASIBILITY 日期有效性检查

10.SD_DATETIME_DIFFERENCE 两日期做差

11.DATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期 12.MONTH_NAMES_GET 获得所有的月和名字

13.F4_DATE 弹出一个窗口显示一个日历允许用户选择一个日期 14.RP_LAST_DAY_OF_MONTHS 获得一个月的最后一天 15.FIRST_DAY_IN_PERIOD_GET 获得期间首日 16.LAST_DAY_IN_PERIOD_GET 获得期间末日

17.获得两个日期的年数

CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'

EXPORTING

BEGDA = gdat endda = sy-datum * TAB_MODE = ' ' * IMPORTING

* DAYS = * C_WEEKS = * C_MONTHS =

C_YEARS = l_age * WEEKS = * MONTHS = * YEARS = * D_MONTHS = * MONTH_TAB = .

18.关于星期的函数

CALLFUNCTION 'GET_WEEK_INFO_BASED_ON_DATE' EXPORTING

DATE = SY-DATUM

IMPORTING

WEEK = MONDAY = SUNDAY =

.

19.输入日期,显示星期几

CALL FUNCTION 'DAY_IN_WEEK'

EXPORTING

datum =

WOTNR = 对应日期星期几 IMPORTING

20.弹出选择周的对话框

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_week-low.

PERFORM getweek CHANGING s_week-low.

*&---------------------------------------------------------------------*

*& Form getweek

*&------------------------------------------------------------ FORM getweek CHANGING p_week. DATA: begin_date TYPE d.

CALL FUNCTION 'POPUP_CALENDAR_SDB' EXPORTING

* SEL_DAY = sel_week = 'X' * SEL_MONTH = * SEL_INTERVAL = * DAY_INFO =

* SEL_ONLY_MARKED_DAYS =

focus_day = sy-datum * IMPORTING

begin_date = begin_date * END_DATE =

.

CALL FUNCTION 'GET_WEEK_INFO_BASED_ON_DATE' EXPORTING

date = begin_date IMPORTING

week = p_week.

* MONDAY = * SUNDAY =

ENDFORM. \

21.只显示年月,但要有日期的search help.

PARAMETERS: p1(6) TYPE c.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p1.

DATA: l_date TYPE sy-datum. CALL FUNCTION 'F4_DATE'

EXPORTING

date_for_first_month = sy-datum * DISPLAY = ' ' * FACTORY_CALENDAR_ID = ' ' * GREGORIAN_CALENDAR_FLAG = ' ' * HOLIDAY_CALENDAR_ID = ' ' * PROGNAME_FOR_FIRST_MONTH = ' ' IMPORTING

select_date = l_date * SELECT_WEEK = * SELECT_WEEK_BEGIN = * SELECT_WEEK_END = EXCEPTIONS

calendar_buffer_not_loadable = 1 date_after_range = 2 date_before_range = 3 date_invalid = 4 factory_calendar_not_found = 5 holiday_calendar_not_found = 6 parameter_conflict = 7 OTHERS = 8 .

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.

p1 = l_date+0(6).

*检查日期的合理性

CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'

EXPORTING

date = bkdf-dbbdt \周期性分录的凭证抬头补充 周期性分录凭证开始日期 EXCEPTIONS

plausibility_check_failed = 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.

22.判断是不是时间 TIME_CHECK_PLAUSIBILITY 23.得到当前的财政年 GET_CURRENT_YEAR

24.查看某日期的属性,包括该日期是周几,第几天,是不是公共假日,需要输入国 家日历 DAY_ATTRIBUTES_GET

25.判断某天是不是假日 HOLIDAY_CHECK_AND_GET_INFO 26.月份选择窗口 POPUP_TO_SELECT_MONTH 27.比较日期和时间

type-pools: trff. \国库计量金融表库

data: x_log_op type trff_type_c_2. \Finanzmathematik

CALL FUNCTION 'FIMA_DATE_CREATE'

EXPORTING

i_date = sy-datum

i_time = sy-uzeit I_FLG_END_OF_MONTH = 'X'

l_comp_date = l_modify-moddate l_comp_time = l_modify-modtime * I_YEARS = 0 * I_MONTHS = 0 * I_DAYS = 0 * I_CALENDAR_DAYS = 0

* I_SET_LAST_DAY_OF_MONTH = ' ' IMPORTING

e_log_op = x_log_op. * E_DATE = * E_FLG_END_OF_MONTH = * E_DAYS_OF_I_DATE =

.

p_months = -4. \前4月,如果为正,则是后面的日期

CALL FUNCTION 'MONTH_PLUS_DETERMINE' EXPORTING

months = p_months olddate = p_date IMPORTING

NEWDATE = p_date.

28.从数据库表中获得指定语言每周七天的名称:WEEKDAY_GET

函数模块的作用:

输入参数:

Language: 指定语言代码,可以省略,为登录语言。指定,参见表T002。

输出参数:

Return_code: 返回码,查询数据库获得的返回码,但由于这个函数会抛出 异常,返回码作用并不大。

表:

Weekday: 结构与透明表T246相同,用来存储返回给用户的周日名称 异常:

WEEKDAY_NOT_FOUND:没有找到周日的描述

本文来源:https://www.bwwdw.com/article/p6tv.html

Top