1、ABAP 日期时间函数ABAP 日期时间函数ABAP日期时间函数收集:函数名称(内页-点击名称可查看操作)函数说明备注FIMA_DATE_CREATERP_CALC_DATE_IN_INTERVAL获取查询日期前、后的年、月、日LAST_DAY_OF_MONTHSRP_LAST_DAY_OF_MONTHSBKK_GET_MONTH_LASTDAY获取查询日期最后一天的日期CCM_GO_BACK_MONTHS获取查询日期过去N月的日期MONTH_PLUS_DETERMINE获取查询日期未来N月的日期DATE_GET_WEEK获取查询日期该年的第几周输出格式:YYYYWWWEEK_GET_FIRS
2、T_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_INTERNA
3、L将标准日期格式转换为数字格式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_NA
4、MES_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获得期间末日函数操作
5、说明:FIMA_DATE_CREATE 函数获取输入日期前、后的年、月、日0102030405060708091011121314151617DATA: dateTYPE vtbbewe-dvalut,flagTYPE trff_flg,daysTYPE trff_type_n_2.CALL FUNCTION FIMA_DATE_CREATEEXPORTINGi_date =20140101 输入日期i_flg_end_of_month = i_years = 2 两年后的日期. 即输入日期的年加2所得日期,可为负数,表示前两年i_months = 1 一个月后的日期.即输入日期的月加1所得日
6、期,可为负数,表示前一个月i_days = 23 23天后的日期。可为负数,表示23天前的日期i_calendar_days = 10 10天后的日历。同I_DAYS参数。i_set_last_day_of_month =X 返回的日期为当前月份的最后一天IMPORTINGe_date = date 返回的日期为当前月份的最后一天e_flg_end_of_month = flag 如果输入参数I_SET_LAST_DAY_OF_MONTH设置X了,则返回值为X。e_days_of_i_date = days. 返回输入日期的i_calendar_days字段与I_DAYS字段的和。输出结果:d
7、ate:2016.03.31flag:Xdays:24RP_CALC_DATE_IN_INTERVAL 函数获取输入日期前、后的年、月、日0102030405060708091011DATA calc_dateTYPE p0001-begda.CALL FUNCTION RP_CALC_DATE_IN_INTERVALEXPORTINGdate =20140101 输入日期days = 10 天数months = 0 月数signum =+ +号:表示 N天/月/年后的日期, -号:表示过去的日期years = 0 年数IMPORTINGcalc_date = calc_date. 返回结果:
8、10天后的日期(2014.01.11)LAST_DAY_OF_MONTHS 函数获取输入日期最后一天的日期01020304050607080910DATA dateTYPE sy-datum.CALL FUNCTION LAST_DAY_OF_MONTHSEXPORTINGday_in =20140101 输入日期IMPORTINGlast_day_of_month = date 返回日期:20140131EXCEPTIONSday_in_no_date = 1OTHERS = 2.RP_LAST_DAY_OF_MONTHS 函数获取输入日期最后一天的日期0102030405060708091
9、0DATA dateTYPE sy-datum.CALL FUNCTION RP_LAST_DAY_OF_MONTHSEXPORTINGday_in =20140101 输入日期IMPORTINGlast_day_of_month = date 返回日期:20140131EXCEPTIONSday_in_no_date = 1OTHERS = 2.BKK_GET_MONTH_LASTDAY 函数获取输入日期最后一天的日期1234567DATA dateTYPE sy-datum.CALL FUNCTION BKK_GET_MONTH_LASTDAYEXPORTINGi_date =201401
10、01 输入日期IMPORTINGe_date = date. 返回日期:20140131CCM_GO_BACK_MONTHS 函数获取输入日期过去N月的日期12345678DATA dateTYPE sy-datum.CALL FUNCTION CCM_GO_BACK_MONTHSEXPORTINGcurrdate =20140101 输入日期backmonths = 3 过去月数IMPORTINGnewdate = date. 返回日期:20131001MONTH_PLUS_DETERMINE 函数获取输入日期后来N月的日期12345678DATA dateTYPE sy-datum.CAL
11、L FUNCTION MONTH_PLUS_DETERMINEEXPORTINGmonths = 3olddate =20140101 输入日期IMPORTINGnewdate = date. 返回日期:20140401DATE_GET_WEEK 函数获取输入日期该年的周数,输出格式为:YYYYWW。01020304050607080910DATA weekTYPE scal-week.CALL FUNCTION DATE_GET_WEEKEXPORTINGdate =20140101 输入日期IMPORTINGweek = week 返回周数:201401EXCEPTIONSdate_inv
12、alid = 1OTHERS = 2.WEEK_GET_FIRST_DAY 函数获取输入周数的第一天01020304050607080910DATA dateTYPE sy-datum.CALL FUNCTION WEEK_GET_FIRST_DAYEXPORTINGweek =201401 输入周IMPORTINGdate = date 返回该周第一天(周一):2013.12.30EXCEPTIONSweek_invalid = 1OTHERS = 2.DAY_IN_WEEK 函数获取输入日期该天是星期几/周几1234567DATA wotnrTYPE p.CALL FUNCTION DAY
13、_IN_WEEKEXPORTINGdatum =20140101 输入日期IMPORTINGwotnr = wotnr. 返回:3 =星期三/周三GET_WEEK_INFO_BASED_ON_DATE 函数获取输入日期该年的周数和这周周一、周日日期(周起始日是周一)0102030405060708091011DATA: weekTYPE scal-week ,mondayTYPE sy-datum,sundayTYPE sy-datum.CALL FUNCTION GET_WEEK_INFO_BASED_ON_DATEEXPORTINGdate =20140101IMPORTINGweek =
14、 week 返回周数:201401monday = monday 返回周一日期:2013.12.30sunday = sunday. 返回周日日期:2014.01.05HR_GBSSP_GET_WEEK_DATES 函数获取查询日期该年的第几周和这周周一、周日日期,该天是星期几/周几(周起始日是周日)0102030405060708091011121314DATA: sundayTYPE sy-datum,saturdayTYPE sy-datum,day_in_weekTYPE i,week_noTYPE p08_weekno.CALL FUNCTION HR_GBSSP_GET_WEEK_
15、DATESEXPORTINGp_pdate =20140101 输入日期IMPORTINGp_sunday = sunday 返回本周开始日期(周日):2013.12.29p_saturday = saturday 返回本周结束日期(周六):2014.01.04p_day_in_week = day_in_week 返回该日星期几/周几: 4 = 星期三/周三(这周中的第4天,由于开始日期是周日,故需要-1)p_week_no = week_no. 返回本周开始日期的周数:201352HOLIDAY_CHECK_AND_GET_INFO函数判断某天是否是假日010203040506070809
16、101112131415161718192021DATA holidayTYPE c.DATA attributesTYPE SORTEDTABLE OF thol.CALL FUNCTION HOLIDAY_CHECK_AND_GET_INFOEXPORTINGdate =20140201 输入日期:春节holiday_calendar_id =ZS 假日日历 IDwith_holiday_attributes = 属性标识IMPORTINGholiday_found = holiday 输出是否为假日的标记 输出结果:XTABLESholiday_attributes = attribut
17、es 输出该假日的属性若WITH_HOLIDAY_ATTRIBUTES参数 = X,则会带出属性记录EXCEPTIONScalendar_buffer_not_loadable = 1date_after_range = 2date_before_range = 3date_invalid = 4holiday_calendar_id_missing = 5holiday_calendar_not_found = 6OTHERS = 7.CONVERT_DATE_TO_INTERNAL 函数将标准日期格式转换为内部数字格式日期的格式与用户参数有关,转化为内部数字格式时,都为:YYYYMMDD.
18、0102030405060708091011DATA dateTYPE sy-datum.CALL FUNCTION CONVERT_DATE_TO_INTERNALEXPORTINGdate_external =2014.01.01 当前用户日期格式:YYYY.MM.DDaccept_initial_date = IMPORTINGdate_internal = date 输出20140101EXCEPTIONSdate_external_is_invalid = 1OTHERS = 2.CONVERT_DATE_TO_EXTERNAL 函数将内部数字日期格式转换为系统日期格式系统日期格式输
19、出时,与用户参数设置有关01020304050607080910DATA date2(10)TYPE c.CALL FUNCTION CONVERT_DATE_TO_EXTERNALEXPORTINGdate_internal =20140101IMPORTINGdate_external = date2 根据用户日期格式参数输出:YYYY.MM.DDEXCEPTIONSdate_internal_is_invalid = 1OTHERS = 2.DATE_CONVERT_TO_FACTORYDATE 函数根据日期返回工厂日历日期01020304050607080910111213141516
20、1718192021DATA: dateTYPE scal-date,factorydateTYPE facdate,workingdayTYPE scal-indicator.CALL FUNCTION DATE_CONVERT_TO_FACTORYDATEEXPORTINGcorrect_option =+ 表示工作日计算方式的标记date =20140101 必须转换的日期factory_calendar_id =ZS 工厂日历IDIMPORTINGdate = date 工厂日历日期factorydate = factorydate 指定日历中的工作日数workingday_indic
21、ator = workingday 表示某日期是否为工作日的标志EXCEPTIONScalendar_buffer_not_loadable = 1correct_option_invalid = 2date_after_range = 3date_before_range = 4date_invalid = 5factory_calendar_not_found = 6OTHERS = 7.输出结果:date: 20140102factorydate: 1531workingday: +HR_99S_INTERVAL_BETWEEN_DATES 函数获取两个日期期间的:天数、周数、月数、年数
22、;包括期间月份的开始(月份第一天日期)、截止日期(月份最后一天日期)010203040506070809101112131415161718TYPE-POOLS: p99sg.DATA: daysTYPE i,weeksTYPE i,monthsTYPE i,yearsTYPE i.DATA: month_tabTYPE STANDARD TABLE OF p99sg_month_tab_row.CALL FUNCTION HR_99S_INTERVAL_BETWEEN_DATESEXPORTINGbegda =20130101 开始日期endda =20140101 截止日期IMPORTINGdays = days 返回天数:266c_weeks = weeks 返回周数:52c_months = months 返回月数:12c_years = years 返回年数:1month_tab = month_tab. 期间月份首尾日month_tab 内容明细:FIMA_DAYS_AND_MONTHS_AND_YEARS 函数计算两个日期期间的天数0102030405060708
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1