ABAP常用日期函数总结
ABAP 常用日期函数总结WEEK的函数:function group:CADA1.计算两个日期间的工作天数,即除双休日之外的天数DATE_CONVERT_TO_FACTORYDATEHR_HK_DIFF_BT_2_DATES2.根据系统当前时间找到上月的第一天和最后一天。
CALL FUNCTION'FIMA_DATE_CREATE'EXPORTINGi_date = sy-datum* I_FLG_END_OF_MONTH = ' '* I_YEARS = 0I_MONTHS = '-1'* I_DAYS = 0* I_CALENDAR_DAYS = 0I_SET_LAST_DAY_OF_MONTH = 'X'IMPORTINGE_DATE = lastdate.* E_FLG_END_OF_MONTH =* E_DAYS_OF_I_DATE = .其中,lastdate为上月最后一天。
Firstday是上月第一天Concatenate lastdate+(6)'01' into firstday.3.当天是当年的第几周DATE_GET_WEEK4.得到该周第一天Week_get_first_day5.查找当前月份以前的月份(比如现在是4月份,如果我需要知道六个月以前的月份)ccm_go_back_monthsrp_calc_date_in_interval6.获取两日期之间天数函数:fima_days_and_months_and_years7.取得当月的第一天和最后一天Concatenate sy-datum(6)'01' into so_date-low.Call function'BKK_GET_MONTH_LASTDAY'EXPORTINGi_date = SY-DATUM* IMPORTINGE_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'EXPORTINGBEGDA = gdatendda = 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'EXPORTINGDATE = SY-DATUMIMPORTINGWEEK =MONDAY =SUNDAY =.19.输入日期,显示星期几CALL FUNCTION'DAY_IN_WEEK'EXPORTINGdatum =IMPORTINGWOTNR = 对应日期星期几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* IMPORTINGbegin_date = begin_date* END_DATE =.CALL FUNCTION'GET_WEEK_INFO_BASED_ON_DATE'EXPORTINGdate = begin_dateIMPORTINGweek = p_week.* MONDAY =* SUNDAY =ENDFORM. "getweek21.只显示年月,但要有日期的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'EXPORTINGdate_for_first_month = sy-datum* DISPLAY = ' '* FACTORY_CALENDAR_ID = ' '* GREGORIAN_CALENDAR_FLAG = ' '* HOLIDAY_CALENDAR_ID = ' '* PROGNAME_FOR_FIRST_MONTH = ' 'IMPORTINGselect_date = l_date* SELECT_WEEK =* SELECT_WEEK_BEGIN =* SELECT_WEEK_END =EXCEPTIONScalendar_buffer_not_loadable = 1date_after_range = 2date_before_range = 3date_invalid = 4factory_calendar_not_found = 5holiday_calendar_not_found = 6parameter_conflict = 7OTHERS = 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'EXPORTINGdate = bkdf-dbbdt "周期性分录的凭证抬头补充周期性分录凭证开始日期EXCEPTIONSplausibility_check_failed = 1OTHERS = 2.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.22.判断是不是时间 TIME_CHECK_PLAUSIBILITY23.得到当前的财政年 GET_CURRENT_YEAR24.查看某日期的属性,包括该日期是周几,第几天,是不是公共假日,需要输入国家日历 DAY_ATTRIBUTES_GET25.判断某天是不是假日 HOLIDAY_CHECK_AND_GET_INFO26.月份选择窗口 POPUP_TO_SELECT_MONTH27.比较日期和时间type-pools: trff. "Treasury: Finanzmathematik 国库计量金融表库data: x_log_op type trff_type_c_2. "Treasury: FinanzmathematikCALL FUNCTION'FIMA_DATE_CREATE'EXPORTINGi_date = sy-datumi_time = sy-uzeitI_FLG_END_OF_MONTH = 'X'l_comp_date = l_modify-moddatel_comp_time = l_modify-modtime* I_YEARS = 0* I_MONTHS = 0* I_DAYS = 0* I_CALENDAR_DAYS = 0* I_SET_LAST_DAY_OF_MONTH = ' 'IMPORTINGe_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'EXPORTINGmonths = p_monthsolddate = p_dateIMPORTINGNEWDATE = p_date.28.从数据库表中获得指定语言每周七天的名称:WEEKDAY_GET函数模块的作用:输入参数:Language:指定语言代码,可以省略,为登录语言。
指定,参见表T002。
输出参数:Return_code: 返回码,查询数据库获得的返回码,但由于这个函数会抛出异常,返回码作用并不大。
表:Weekday:结构与透明表T246相同,用来存储返回给用户的周日名称异常:WEEKDAY_NOT_FOUND:没有找到周日的描述。
ABAP语言的常用变量和常用函数
ABAP语言的常用变量和常用函数系统常用变量:SY-SUBRC 执行状态SY-DA TUM 服务器日期SY-UZEIT 服务器时间SY-INDEX 循环的次数(DO While)SY-TABIX 当前处理的内表的IndexSY-LINSZ 当前报表宽度SY-UNAME 用户名SY-TCODE 当前的事务代码SY-LANGU 当前登录语言SY-BATCH 后台的程序运行SY-DYNNR 当前屏幕的编号SY-LINCT 当前报表长度SY-LSIND 列表索引页SY-LISTI 上一个列表的索引SY-LILLI 绝对列表中选定行的行号SY-CUCOL 屏幕,PAI 的水平光标位置SY-CUROW 屏幕,PAI 的垂直光标位置SY-CPAGE 列表的当前显示页SY-STARO 真实行号SY-LISEL 选择行的内容,长度为255SY-LINNO 当前行SY-PAGNO 当前页号SY-SLSET 选择屏幕的变式名称SY-MSGID 消息, 消息类SY-MSGTY 消息,消息类型SY-MSGNO 消息, 消息编号SY-MSGV1 消息,消息变量1SY-MSGV2 消息,消息变量2SY-MSGV3 消息,消息变量3SY-MSGV4 消息,消息变量4SY-VLINE 垂直线SY-ULINE 水平线SY-ABCDE 常量,A-Z字母表SY-UCOMM 屏幕,PAI 触发的功能代码系统常用函数21. SHIFT STRING:左移字符串。
长度减1。
22 CONCATENATE 字符合并23. SPLIT:拆分字符串。
24. SEARCH:查询字符串。
25. REPLACE:替换字符串。
26. CONDENSE:删除多余的空格。
27. TRANSLATE:转换字符格式,如将'ABC'转换为'ABC'28. CONVERT TEXT:创建一个可排序的字符串。
29. OVERLAY:用一个字符串覆盖另一个字符串。
ABAP 日期时间函数
ABAP 日期时间函数ABAP日期时间函数收集:函数名称 (内页-点击名称可查看操作)函数说明备注FIMA_DATE_CREATERP_CALC_DATE_IN_INTERVAL 获取查询日期前、后的年、月、日LAST_DAY_OF_MONTHS RP_LAST_DAY_OF_MONTHS BKK_GET_MONTH_LASTDAY 获取查询日期最后一天的日期CCM_GO_BACK_MONTHS获取查询日期过去N月的日期MONTH_PLUS_DETERMINE获取查询日期未来N月的日期DATE_GET_WEEK获取查询日期该年的第几周输出格式:YYYYWW WEEK_GET_FIRST_DAY获取查询周数的第一天DAY_IN_WEEK获取查询日期该天是星期几GET_WEEK_INFO_BASED_ON_DATE获取查询日期该年的第几周和这周周一、周日日期周起始日是周一HR_GBSSP_GET_WEEK_DATES获取查询日期该年的第几周和这周周一、周日日期,该天是周几周起始日是周日DATE_CHECK_PLAUSIBILITY 检查日期有效性SY-SUBRC = 0 有效TIME_CHECK_PLAUSIBILITY 检查时间有效性SY-SUBRC = 0 有效HOLIDAY_CHECK_AND_GET_INFO判断某天是否是假日CONVERT_DATE_TO_INTERNAL将标准日期格式转换为数字格式CONVERT_DATE_TO_EXTERNAL将数字日期格式转换为系统日期格式DATE_CONVERT_TO_FACTORYDATE将查询日期转为工厂日历日期HR_99S_INTERVAL_BETWEEN_DATES获取两日期间的:天数、周数、月数、年数、期间月份开始截止日期FIMA_DAYS_AND_MONTHS_AND_YEARS 计算两日期之间间隔的天数FIMA_DATE_COMPARE 比较两个日期大小 返回:GT 、EQ 、LT等SD_DATETIME_DIFFERENCE 两日期的时间差 HRVE_CONVERT_TIME 时间:12/24小时制转换 MONTH_NAMES_GET 获取所有的月份名字 WEEKDAY_GET 获取所有的星期名字 DAY_ATTRIBUTES_GET 查看日期属性 包括:该日期是星期几,第几天(周2=2),是不是公共假期等需要输入国家日历 F4_DATE 弹出日历对话框,供用户选择日期F4_CLOCK 弹出时间对话框,供用户选择时间POPUP_TO_SELECT_MONTH 弹出选择年和月的对话框 POPUP_CALENDAR_SDB 弹出选择周的对话框 GET_CURRENT_YEAR 获得当前的财政年(fiscal year )FIRST_DAY_IN_PERIOD_GET 获得期间首日 LAST_DAY_IN_PERIOD_GET 获得期间末日函数操作说明:FIMA_DATE_CREATE 函数获取输入日期前、后的年、月、日01 02 03 04 05 06 07 DATA: date TYPE vtbbewe-dvalut, flag TYPE trff_flg, days TYPE trff_type_n_2. CALL FUNCTION 'FIMA_DATE_CREATE' EXPORTING i_date = '20140101' "输入08 09 10 11 12 13 14 15 16 17 日期 i_flg_end_of_month = ' ' i_years = 2 "两年后的日期. 即输入日期的年加2所得日期,可为负数,表示前两年 i_months = 1 "一个月后的日期.即输入日期的月加1所得日期,可为负数,表示前一个月 i_days = 23 "23天后的日期。
SAP ABAP 函数总结 常用函数解释
GUI_DELETE_FILE – 在显示服务器端删除一个文件 。
GUI_DOWNLOAD – 从应用服务器下载内表到显示服务器。
GUI_EXEC – 调用一个文件或程序,取代了WS_EXECUTE。
GUI_GET_DESKTOP_INFO – 获得客户端桌面信息,取代了WS_QUERY。
RPY_DYNPRO_READ – 读取屏幕
PROFILE_GET - 从INI文件读取一条记录
PROFILE_SET – 往INI文件写一条记录
READ_TEXT – 上传长文本
REGISTRY_GET – 从注册表读取一条记录
REGISTRY_SET – 在注册表里设置一条记录
RFC_ABAP_INSTALL_AND_RUN – 当MODE参数值为‘F’时运行PROGRAM表中的程序'.
FILENAME_GET – 弹出一个文件选择对话框。
DATA out(60) TYPE c.
CALL FUNCTION 'FILENAME_GET'
EXPORTING
filename = 'c:1.txt'
title = 'GET FILENAME'
IMPORTING
filename = OUT.
函数名 描述
CONVERSION_EXIT_MATN1_INPUT 物料号码转换函数
CONVERSION_EXIT_MATN1_OUTPUT 同上相反
CONVERT_TO_LOCAL_CURRENCY 按照指定日期汇率转换金额为指定货币类型
SSF_FUNCTION_MODULE_NAME 根据form名取得对应的函数名(SmartForm)
abap 常用函数用法
abap 常用函数用法ABAP是一种功能强大的SAP开发语言,用于创建和编辑业务应用程序。
在ABAP编程中,函数是一种常用的工具,用于执行特定的任务。
本篇文章将介绍一些常用的ABAP函数及其用法。
一、字符串函数1.LEFT(string,length):返回string字符串左边的length个字符。
2.RIGHT(string,length):返回string字符串右边的length个字符。
3.MID(string,start_position,length):返回string字符串从start_position开始,length个字符的子串。
4.CONCATENATE(string1,string2,...):将多个字符串连接成一个字符串。
5.TRIM(string):去除字符串首尾的空格。
6.LOWER(string):将字符串转换为小写。
7.UPPER(string):将字符串转换为大写。
二、数值函数1.ABS(number):返回number的绝对值。
2.ROUND(number,digits):对number进行四舍五入到digits位小数。
3.FLOOR(number):对number向下取整。
4.CEILING(number):对number向上取整。
5.MOD(number1,number2):返回number1除以number2的余数。
三、日期函数1.CURDATE():返回当前日期。
2.YEAR(date):返回date日期的年份。
3.MONTH(date):返回date日期的月份。
4.DAY(date):返回date日期的天数。
5.ADD_MONTHS(date,months):将date日期增加指定的月份。
6.SUBTRACT_MONTHS(date,months):将date日期减少指定的月份。
四、其他常用函数1.ISNULL(value):检查value是否为空。
2.IS_NOT_NULL(value):检查value是否不为空。
ABAP+函数总结+常用函数解释
ABAP 函数总结常用函数解释函数名描述SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织VIEW_MAINTENANCE_CALL 维护表视图函数名描述DY_GET_FOCUS 获得屏幕焦点DY_GET_SET_FIELD_VALUE 获得或者设置屏幕字段的值函数名描述F4IF_INT_TABLE_VALUE_REQUEST 显示检索helpREAD_TEXT 读取长文本CONVERSION_EXIT_CUNIT_OUTPUT 单位转换SJIS_DBC_TO_SBC 全角转半角SJIS_SBC_TO_DBC 半角转换为全角CO_R0_CHECK_DECIMAL_POINT 根据单位检查数据的小数位POSTAL_CODE_CHECK 检查邮政编码函数名描述CONVERSION_EXIT_ALPHA_INPUT 全数字则在前面补0CONVERSION_EXIT_ALPHA_INPUT 和上面相反GET_JOB_RUNTIME_INFO 获得job相关信息TERMINAL_ID_GET 获得端末idDATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期MESSAGE_TEXT_BUILD 把消息转为文本函数名描述POPUP_TO_CONFIRM 弹出确认窗口函数名描述CONVERSION_EXIT_MATN1_INPUT 物料号码转换函数CONVERSION_EXIT_MATN1_OUTPUT 同上相反CONVERT_TO_LOCAL_CURRENCY 按照指定日期汇率转换金额为指定货币类型SSF_FUNCTION_MODULE_NAME 根据form名取得对应的函数名(SmartForm)函数名描述DATE_CHECK_PLAUSIBILITY 日期CHECKcl_gui_frontend_services=>gui_upload 上传到服务器cl_gui_frontend_services=>gui_download 下载到服本地SSF_FUNCTION_MODULE_NAME SMARTFORMS输出报表时,生成一个函数名称,然后CALL这个名称函数名描述POPUP_TO_DECIDE_LIST 弹出供选择窗口ABAP_DOCU_DOWNLOAD –以HTML格式下载ABAP文档。
SAPABAP函数总结常用函数解释
SAPABAP函数总结常用函数解释SAPABAP是一种流行的编程语言,常用于SAP系统开发。
在ABAP中,函数是可重复使用的代码块,用于执行特定的任务或操作。
这些函数可以在ABAP程序中调用,以提高代码的可维护性和重用性。
下面是一些常用的SAPABAP函数以及它们的解释。
1.STRLEN函数:返回一个字符串的长度。
这个函数可以用于计算字符串的字符数,以便于处理和操作字符串。
2.CONCATENATE函数:将多个字符串连接成一个字符串。
这个函数可以用于连接两个或多个字符串,使其成为一个新的字符串。
3.REPLACE函数:替换字符串中指定的内容。
这个函数可以用于替换一个字符串中的一些子串,以实现特定的文本替换需求。
4.SPLIT函数:将一个字符串按照指定的分隔符分割成一个字符串表。
这个函数可以用于将一个长字符串以指定的分隔符分割为多个小字符串,并存储在表中。
5.TRANSLATE函数:替换字符串中的字符。
这个函数可以用于替换一个字符串中的特定字符或字符串,以实现文本的转换或调整。
6.NUMERIC_CHECK函数:检查一个字符串是否为合法的数字。
这个函数可以用于验证一个字符串是否为合法的数字,以确保数据的准确性。
7.DATE_CONVERSION_FUNCTIONS函数:日期转换函数。
这个函数可以用于在不同日期格式之间进行转换,以满足不同日期格式的需求。
8.DYNPRO_NOT_FOUND函数:检查屏幕元素是否存在。
这个函数可以用于检查SAP屏幕中是否存在一个指定的屏幕元素,以便根据结果来决定后续的操作。
9.WRITE函数:向输出窗口或内部表写入数据。
这个函数可以用于将数据写入SAP输出窗口,或写入内部表,以进行后续的数据处理。
10.SY-SUBRC函数:获取最近一次操作的执行状态。
这个函数可以用于获取最近一次操作的执行结果,以便根据结果进行进一步的处理和判断。
11.CONVERSION_EXIT_ALPHA_INPUT函数:输入转换函数。
ABAP+函数总结+常用函数解释
ABAP 函数总结常用函数解释函数名描述SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织VIEW_MAINTENANCE_CALL 维护表视图函数名描述DY_GET_FOCUS 获得屏幕焦点DY_GET_SET_FIELD_VALUE 获得或者设置屏幕字段的值函数名描述F4IF_INT_TABLE_VALUE_REQUEST 显示检索helpREAD_TEXT 读取长文本CONVERSION_EXIT_CUNIT_OUTPUT 单位转换SJIS_DBC_TO_SBC 全角转半角SJIS_SBC_TO_DBC 半角转换为全角CO_R0_CHECK_DECIMAL_POINT 根据单位检查数据的小数位POSTAL_CODE_CHECK 检查邮政编码函数名描述CONVERSION_EXIT_ALPHA_INPUT 全数字则在前面补0CONVERSION_EXIT_ALPHA_INPUT 和上面相反GET_JOB_RUNTIME_INFO 获得job相关信息TERMINAL_ID_GET 获得端末idDATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期MESSAGE_TEXT_BUILD 把消息转为文本函数名描述POPUP_TO_CONFIRM 弹出确认窗口函数名描述CONVERSION_EXIT_MATN1_INPUT 物料号码转换函数CONVERSION_EXIT_MATN1_OUTPUT 同上相反CONVERT_TO_LOCAL_CURRENCY 按照指定日期汇率转换金额为指定货币类型SSF_FUNCTION_MODULE_NAME 根据form名取得对应的函数名(SmartForm)函数名描述DATE_CHECK_PLAUSIBILITY 日期CHECKcl_gui_frontend_services=>gui_upload 上传到服务器cl_gui_frontend_services=>gui_download 下载到服本地SSF_FUNCTION_MODULE_NAME SMARTFORMS输出报表时,生成一个函数名称,然后CALL这个名称函数名描述POPUP_TO_DECIDE_LIST 弹出供选择窗口ABAP_DOCU_DOWNLOAD –以HTML格式下载ABAP文档。
abap 常用函数用法 -回复
abap 常用函数用法-回复标题:ABAP常用函数用法详解ABAP(Advanced Business Application Programming)是SAP公司开发的一种高级编程语言,广泛应用于企业资源规划(ERP)系统中。
在ABAP编程中,函数的使用是不可或缺的一部分。
本文将详细介绍一些ABAP常用函数的用法。
1. CONCATENATE函数CONCATENATE函数用于连接两个或更多的字符字段或变量。
其基本语法如下:CONCATENATE expression1 [ INTO target ] [ SEPARATED BY separator ].例如,我们想要连接两个字符串"Hello"和"World":DATA(str1) = 'Hello'.DATA(str2) = 'World'.DATA(result) = CONCATENATE str1 ' ' str2.在上述代码中,'result'的值将会是"Hello World"。
2. SUBSTRING函数SUBSTRING函数用于从字符串中提取一部分子字符串。
其基本语法如下:SUBSTRING string [ OFFSET offset ] [ LENGTH length ].例如,我们想要从字符串"Hello World"中提取"World":DATA(full_str) = 'Hello World'.DATA(sub_str) = SUBSTRING full_str OFFSET 6.在上述代码中,'sub_str'的值将会是"World"。
3. REPLACE函数REPLACE函数用于在字符串中替换某个子字符串。
ABAP常用日期函数总结
ABAP 常用日期函数总结WEEK的函数:function group:CADA1.计算两个日期间的工作天数,即除双休日之外的天数DATE_CONVERT_TO_FACTORYDATEHR_HK_DIFF_BT_2_DATES2.根据系统当前时间找到上月的第一天和最后一天。
CALL FUNCTION'FIMA_DATE_CREATE'EXPORTINGi_date = sy-datum * I_FLG_END_OF_MONTH = ' '* I_YEARS = 0I_MONTHS = '-1'* I_DAYS = 0* I_CALENDAR_DAYS = 0I_SET_LAST_DAY_OF_MONTH = 'X'IMPORTINGE_DATE = lastdate.* E_FLG_END_OF_MONTH =* E_DAYS_OF_I_DATE = .其中,lastdate为上月最后一天。
Firstday是上月第一天Concatenate lastdate+(6)'01' into firstday.3.当天是当年的第几周DATE_GET_WEEK4.得到该周第一天Week_get_first_day5.查找当前月份以前的月份(比如现在是4月份,如果我需要知道六个月以前的月份)ccm_go_back_monthsrp_calc_date_in_interval6.获取两日期之间天数函数:fima_days_and_months_and_years7.取得当月的第一天和最后一天Concatenate sy-datum(6)'01' into so_date-low.Call function'BKK_GET_MONTH_LASTDAY'EXPORTINGi_date = SY-DATUM* IMPORTINGE_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' EXPORTINGBEGDA = gdatendda = 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' EXPORTINGDATE= SY-DATUMIMPORTINGWEEK =MONDAY =SUNDAY =.19.输入日期,显示星期几CALL FUNCTION'DAY_IN_WEEK'EXPORTINGdatum =IMPORTINGWOTNR = 对应日期星期几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* IMPORTINGbegin_date = begin_date* END_DATE =.CALL FUNCTION'GET_WEEK_INFO_BASED_ON_DATE'EXPORTINGdate = begin_dateIMPORTINGweek = p_week.* MONDAY =* SUNDAY =ENDFORM. "getweek21.只显示年月,但要有日期的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'EXPORTINGdate_for_first_month = sy-datum* DISPLAY = ' '* FACTORY_CALENDAR_ID = ' '* GREGORIAN_CALENDAR_FLAG = ' '* HOLIDAY_CALENDAR_ID = ' '* PROGNAME_FOR_FIRST_MONTH = ' ' IMPORTINGselect_date = l_date* SELECT_WEEK =* SELECT_WEEK_BEGIN =* SELECT_WEEK_END =EXCEPTIONScalendar_buffer_not_loadable = 1date_after_range = 2date_before_range = 3date_invalid = 4factory_calendar_not_found = 5holiday_calendar_not_found = 6parameter_conflict = 7OTHERS= 8.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.p1 = l_date+0(6).*检查日期的合理性CALL FUNCTION'DATE_CHECK_PLAUSIBILITY'EXPORTINGdate= bkdf-dbbdt "周期性分录的凭证抬头补充周期性分录凭证开始日期EXCEPTIONSplausibility_check_failed = 1OTHERS= 2.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.22.判断是不是时间TIME_CHECK_PLAUSIBILITY23.得到当前的财政年GET_CURRENT_YEAR24.查看某日期的属性,包括该日期是周几,第几天,是不是公共假日,需要输入国家日历DAY_ATTRIBUTES_GET25.判断某天是不是假日HOLIDAY_CHECK_AND_GET_INFO26.月份选择窗口POPUP_TO_SELECT_MONTH27.比较日期和时间type-pools: trff. "Treasury: Finanzmathematik 国库计量金融表库data: x_log_op type trff_type_c_2. "Treasury: FinanzmathematikCALL FUNCTION'FIMA_DATE_CREATE'EXPORTINGi_date = sy-datumi_time = sy-uzeitI_FLG_END_OF_MONTH = 'X'l_comp_date = l_modify-moddatel_comp_time = l_modify-modtime* I_YEARS = 0* I_MONTHS = 0* I_DAYS = 0* I_CALENDAR_DAYS = 0* I_SET_LAST_DAY_OF_MONTH = ' 'IMPORTINGe_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'EXPORTINGmonths = p_monthsolddate = p_dateIMPORTINGNEWDATE = p_date.28.从数据库表中获得指定语言每周七天的名称:WEEKDAY_GET 函数模块的作用:输入参数:Language:指定语言代码,可以省略,为登录语言。
ABAP计算日期的函数
ABAP计算日期的函数在ABAP中,有多种函数可以用来计算日期。
下面是一些常用的ABAP 日期函数:1.GET_ACTIVE_DATE:获取当前活动的日期。
```ABAPDATA: lv_date TYPE sy-datum.CALLFUNCTION'GET_ACTIVE_DATE'IMPORTINGactive_date = lv_date.```2. CONVERT_DATE_TO_FACTORYDATE:将一个日期转换为Factory格式日期。
```ABAPDATA: lv_date TYPE d,lv_factorydate TYPE factorydate.CALLFUNCTION'CONVERT_DATE_TO_FACTORYDATE'EXPORTINGoutput = lv_dateIMPORTINGfactorydate = lv_factorydate.```3. CONVERT_FACTORYDATE_TO_DATE:将一个Factory格式的日期转换为标准日期格式。
```ABAPDATA: lv_factorydate TYPE factorydate,lv_date TYPE d.CALLFUNCTION'CONVERT_FACTORYDATE_TO_DATE'EXPORTINGinput = lv_factorydateIMPORTINGdate = lv_date.```4.DATE_COMPARE:比较两个日期的大小。
```ABAPDATA: lv_date1 TYPE d,lv_date2 TYPE d,lv_result TYPE i.CALLFUNCTION'DATE_COMPARE'EXPORTINGdate1 = lv_date1date2 = lv_date2IMPORTINGresult = lv_result.```5.DATE_DAYS_BETWEEN:计算两个日期之间的天数差。
