ABAP计算日期的函数
计算两个日期间的工作天数,就是剔除了双休日后的天数.( 待考证)DATE_CONVERT_TO_FACTORYDATEHR_HK_DIFF_BT_2_DATES根据当前时间如何找到上月的第一天和最后一天?CALL FUNCTION 'FIMA_DATE_CREATE'EXPORTINGI_DATE = SY-DATUMI_MONTHS = '-1'I_SET_LAST_DAY_OF_MONTH = 'X'IMPORTINGE_DATE = LASTDATE.LASTDATE是上个月最后一天。
FIRSTDAY是上月第一天CONCATENATE LASTDATE+(6) '01' INTO FIRSTDAY.。
当天是当年的第几周DATE_GET_WEEK得到该周第一天WEEK_GET_FIRST_DAY查找当前月份以前的月份(比如现在是4月份,如果我需要知道6个月之前是哪个月)CCM_GO_BACK_MONTHSRP_CALC_DATE_IN_INTERVAL获取两日期之间天数函数:FIMA_DAYS_AND_MONTHS_AND_YEARS取得当月的第一天和最后一天CONCATENATE sy-datum(6) '01' INTO so_date-low.CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'EXPORTINGi_date = sy-datumIMPORTINGe_date = so_date-high.so_date-sign = 'I'. so_date-option = 'BT'. APPEND so_date.RP_CALC_DATE_IN_INTERVAL 年月日加减DATE_CHECK_PLAUSIBILITY 日期有效性检查SD_DATETIME_DIFFERENCE 两日期作差DATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期MONTH_NAMES_GET 获得所有的月和名字F4_DATE 弹出一个窗口显示一个日历允许用户选择一个日期。
RP_LAST_DAY_OF_MONTHS 获得一个月的最后一天FIRST_DAY_IN_PERIOD_GET 获得期间首日LAST_DAY_IN_PERIOD_GET 获得期间末日DATE_GET_WEEK 返回一个日期所在的周数。
CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'"获得两个日期的年数EXPORTINGbegda = gdatendda = sy-datumIMPORTINGc_years = l_age.关于星期(周)的函数FM:GET_WEEK_INFO_BASED_ON_DATE输入参数值DATE 2008.01.09输出参数值WEEK 200802 <----2008年第二周MONDAY 2008.01.07 <----这个周周一的日期SUNDAY 2008.01.13 <----周日的日期FM:DAY_IN_WEEK(输入日期是星期几)输入参数值DATUM 2008.01.09输出参数值WOTNR 3 <----2008-1-9为周三*更多关于Week的函数请看Function Group:CADA*弹出选择周的对话框AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_week-low. PERFORM getweek CHANGING s_week-low.FORM getweek CHANGING p_week .DATA: begin_date TYPE d .CALL FUNCTION 'POPUP_CALENDAR_SDB'EXPORTINGsel_week = 'X'focus_day = sy-datumIMPORTINGbegin_date = begin_date.CALL FUNCTION 'GET_WEEK_INFO_BASED_ON_DATE'EXPORTINGdate = begin_dateIMPORTINGweek = p_week.ENDFORM.F4_CLOCK 选择时间*需求:只有显示年月,但要有日期的search helpPARAMETERS: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-datumIMPORTINGselect_date = l_dateEXCEPTIONScalendar_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).* check plausibilty of datesCALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'EXPORTINGDATE = bkdf-dbbdt.TIME_CHECK_PLAUSIBILITY 判断是不是时间GET_CURRENT_YEAR得到当前的财政年(fiscal year)察看某日期的属性,包括该日期是星期几,第几天(周2=2),是不是公共假期等,需要输入国家日历。
DAY_ATTRIBUTES_GET判断某天是否是假日HOLIDAY_CHECK_AND_GET_INFOPOPUP_TO_SELECT_MONTH 月份选择窗口比较日期和时间TYPE-POOLS : TRFF .DATA : X_LOG_OP TYPE TRFF_TYPE_C_2 .CALL FUNCTION 'FIMA_DATE_COMPARE'EXPORTINGI_FLG_INTRADAY = 'X'I_DATE = SY-DATUMI_TIME = SY-UZEITI_COMP_DATE = L_MODIFY-MODDATEI_COMP_TIME = L_MODIFY-MODTIMEIMPORTINGE_LOG_OP = X_LOG_OP.p_months = -4."前4月,如果为正,则是后面的日期CALL FUNCTION 'MONTH_PLUS_DETERMINE'EXPORTINGMONTHS = p_monthsOLDDATE = p_dateIMPORTINGNEWDATE = p_date.获得某个日期所在的周,获得某周的第一天。
DATE_GET_WEEK 和 WEEK_GET_FIRST_DAYfunction date_get_week.*"---------------------------------------------------------------------- *"*"Lokale Schnittstelle:*" IMPORTING*" VALUE(DATE) LIKE SCAL-DATE*" EXPORTING*" VALUE(WEEK) LIKE SCAL-WEEK*" EXCEPTIONS*" DATE_INVALID*"----------------------------------------------------------------------函数模块作用:获得某个日期所在的周。
=============================================function week_get_first_day.*"---------------------------------------------------------------------- *"*"Lokale Schnittstelle:*" IMPORTING*" VALUE(WEEK) LIKE SCAL-WEEK*" EXPORTING*" VALUE(DATE) LIKE SCAL-DATE*" EXCEPTIONS*" WEEK_INVALID*"----------------------------------------------------------------------函数模块作用:获得某周的第一天。
============================================上述两个函数的功能已经包含在 HR_GBSSP_GET_WEEK_DATES 中了。
从数据表中获得指定语言每周七天的名称,例如中文就是星期一、星期二……星期日,英文就是Sunday、Monday……Saturday。
WEEKDAY_GETFUNCTION WEEKDAY_GET.*"---------------------------------------------------------------------- *"*"Lokale Schnittstelle:*" IMPORTING*" VALUE(LANGUAGE) LIKE SY-LANGU DEFAULT SY-LANGU*" EXPORTING*" VALUE(RETURN_CODE) LIKE SY-SUBRC*" TABLES*" WEEKDAY STRUCTURE T246*" EXCEPTIONS*" WEEKDAY_NOT_FOUND*"----------------------------------------------------------------------函数模块作用:从数据表中获得指定语言每周七天的名称,例如中文就是星期一、星期二……星期日,英文就是Sunday、Monday……Saturday。
SAP日期处理函数汇总
SAP日期处理函数汇总SAP日期处理函数是SAP系统中常用的函数之一,用于处理日期和时间相关的操作。
在SAP系统中,日期和时间字段使用特定的数据类型,如DATS(日期类型)和TIMS(时间类型)。
下面是一些常见的SAP日期处理函数的汇总。
1.SY-DATUM:该函数用于获取当前日期。
它返回一个日期值,表示系统日期。
2.SY-ZEIT:该函数用于获取当前时间。
它返回一个时间值,表示系统时间。
3.SY-DAY:该函数用于获取给定日期的天数。
它接受一个日期作为输入,并返回一个整数值,表示该日期的天数。
4.SY-MONTH:该函数用于获取给定日期的月份。
它接受一个日期作为输入,并返回一个整数值,表示该日期的月份。
5.SY-YEAR:该函数用于获取给定日期的年份。
它接受一个日期作为输入,并返回一个整数值,表示该日期的年份。
6.GET_GMT_OFFSE:该函数用于获取给定日期的本地时区相对于GMT (格林尼治标准时间)的偏移量。
它接受一个日期作为输入,并返回一个时间间隔值,表示本地时区与GMT之间的时间差。
7.DATE_IS_VALID:该函数用于检查给定日期是否有效。
它接受一个日期作为输入,并返回一个标识符,表示该日期是否有效。
8.DATE_ADD_DAYS:该函数用于在给定日期上增加指定的天数。
它接受一个日期和一个整数值作为输入,并返回一个新的日期值,表示在给定日期上增加指定天数后的日期。
9.DATE_SUBTRACT_DAYS:该函数用于从给定日期中减去指定的天数。
它接受一个日期和一个整数值作为输入,并返回一个新的日期值,表示从给定日期中减去指定天数后的日期。
10.DATE_DIFFERENCE:该函数用于计算两个日期之间的天数差异。
它接受两个日期作为输入,并返回一个整数值,表示这两个日期之间的天数差异。
11.TIME_CONVERT:该函数用于将给定时间从一种时区转换为另一种时区。
它接受一个时间和两个时区作为输入,并返回一个新的时间值,表示将给定时间从一个时区转换到另一个时区后的时间。
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天后的日期。
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时间函数ABAP时间函数ABAP时间函数是在SAP系统中用于处理日期和时间的函数。
这些函数可以用于计算日期之间的差异、将日期格式化为所需的格式、将时间转换为不同的时区等等。
本文将介绍一些常用的ABAP时间函数及其用法。
1. 获取当前日期和时间获取当前日期和时间是很常见的需求。
在ABAP中,可以使用以下两个函数来获取当前日期和时间:GET DATE:获取当前系统日期。
GET TIME:获取当前系统时间。
这两个函数返回的值都是ABAP类型的DATE和TIME,可以直接使用或转换为其他格式。
2. 格式化日期在实际应用中,需要将日期格式化为符合要求的字符串,例如“YYYY/MM/DD”、“MM/DD/YYYY”等。
在ABAP中,可以使用以下两个函数来格式化日期:WRITE:将DATE类型转换为字符型,并按照指定格式输出。
CONVERT DATE TO STRING:与WRITE类似,也可以将DATE类型转换为字符型,并按照指定格式输出。
下面是一个例子:DATA: date TYPE d VALUE '20220101'.WRITE: / 'Formatted date:', date.WRITE: / 'YYYY/MM/DD:', date(4), '/', date+4(2), '/', date+6(2). CONVERT DATE TO STRING date INTO lv_date FORMAT'MM/DD/YYYY'.WRITE: / 'MM/DD/YYYY:', lv_date.3. 计算两个日期之间的差异在实际应用中,经常需要计算两个日期之间的差异,例如计算两个日期之间相差的天数、周数、月数等。
在ABAP中,可以使用以下函数来计算两个日期之间的差异:CL_ABAP_TSTMP=>SUBTRACT:计算两个时间戳之间的时间差。
sap 时间函数
sap 时间函数一、介绍SAP是一个全球领先的企业应用软件公司,其提供的软件可以帮助企业管理各种业务流程。
其中,SAP时间函数是SAP系统中非常重要的一个函数,它可以用于计算两个日期之间的天数、月数、年数等等。
本文将详细介绍SAP时间函数的使用方法和注意事项。
二、SAP时间函数分类在SAP系统中,时间函数主要分为以下几类:1. 日期和时间函数:如SY-DATUM(当前系统日期)、SY-UZEIT (当前系统时间)等。
2. 时间差函数:如TSTMP_SUBTRACT(计算两个时间戳之间的差值)等。
3. 时间格式化函数:如CONVERT_TIME_TO_UTC(将本地时间转换为UTC时间)等。
4. 时间转换函数:如TIMESTAMP_CONVERT(将日期和时间转换为时间戳)等。
三、常用SAP时间函数1. DAYS_BETWEEN_DATESDAYS_BETWEEN_DATES是计算两个日期之间相差的天数。
其语法如下:DAYS_BETWEEN_DATES(date1, date2)其中date1和date2均为日期数据类型。
例如:DAYS_BETWEEN_DATES('20220101', '20220131')返回结果为30,表示2022年1月1日到2022年1月31日相差30天。
2. MONTHS_BETWEEN_DATESMONTHS_BETWEEN_DATES是计算两个日期之间相差的月数。
其语法如下:MONTHS_BETWEEN_DATES(date1, date2)其中date1和date2均为日期数据类型。
例如:MONTHS_BETWEEN_DATES('20220101', '20221231')返回结果为11,表示2022年1月1日到2022年12月31日相差11个月。
3. YEARS_BETWEEN_DATESYEARS_BETWEEN_DATES是计算两个日期之间相差的年数。
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:计算两个日期之间的天数差。
SAP中日期时间函数总结
SAP中日期时间函数总结1、获得最后一天CALL FUNCTION 'FIMA_DATE_CREATE'EXPORTINGI_DATE = I_DATE "输入日期。
sy-datum类型如:…20110402‟。
I_FLG_END_OF_MONTH = ' 'I_YEARS = 2 "两年后的日期时间,既sy-datum的年加2所得日期,可为负数,表示前两年I_MONTHS = 1 "一个月后的日期。
既sy-datum的月加1所得日期,可为负数,表示前一个月I_DAYS = 23 "23天后的日期。
可为负数,表示23天前的日期I_CALENDAR_DAYS = 10 "10天后的日历。
同I_DAYS参数。
I_SET_LAST_DAY_OF_MONTH = 'X' "返回的日期为当前月份的最后一天IMPORTINGE_DATE = E_DATE "返回的日期。
如果I_DAYS和I_CALENDAR_DAYS都设置,则天数累加E_FLG_END_OF_MONTH = FLAG "如果输入参数I_SET_LAST_DAY_OF_MONTH设置'X'了,则返回值为'X'。
E_DAYS_OF_I_DATE = DAY. "返回输入日期的…日‟字段与I_DAYS字段的和。
本例子为:252、获得周数DATA WEEK LIKE SCAL-WEEK.CALL FUNCTION 'DATE_GET_WEEK'EXPORTINGDATE = SY-DATUM ”输入日期,如:…20110402‟IMPORTINGWEEK = WEEK.“返回输入日期为该年第几周。
如:…201113‟。
表示为2011年的第13周。
3、获得某周的第一天日期DATA DATE LIKE SCAL-DATE.CALL FUNCTION 'WEEK_GET_FIRST_DAY'EXPORTINGWEEK = '201113' "表示2011年的第13周IMPORTINGDATE = DATE. "返回的DATE值为20110328,既2011年第13周的第一天是3月28日。
ABAP-有关日期的SAP函数使用(日历)
SCAL函数组日历功能有以下8个函数:1)DATE_COMPUTE_DAY 根据日期返回的星期值:根据输入一个日期,返回该日期是每周中第几个,注意周日是每周的第7天,周一是每周的第1天.其实这个函数很简单,就是利用每周7天的原理,进行除得到余数,标准的函数是以周日为第一天,所以增加了判断IF DAY_P > 1.DAY_P = DAY_P - 1.ELSE.DAY_P = DAY_P + 6.ENDIF.如果按我国习惯,周日为第1天时,则判断可以变成:IF DAY_P < 1.DAY_P = DAY_P + 7.ENDIF.2)DATE_CONVERT_TO_FACTORYDATE 根据日期返回工厂日历日期:有些国家有自己的传统节日,或者有些企业工作日有些不同,比如六天制,七天制,所以可以设置不同的工厂日历,该函数则是输入一个日期、工厂日历标识、工作日计算方法的标识(+与-两种情况,+表示如果输入的日期在工厂日历中并非工作日,则返回的日期为输入日期的后一个工作日,-表示如果输入的日期在工厂日历中并非工作日,则返回的日期为输入日期的前一个工作日),输出转化为工厂日历日期的日期(如果输入日期为工厂日历中的工作日,则返回输入日期,如果不是,则是前/后一个工作日)、指定日历中的工作日数(输入日期在工厂日历中的工作日的顺序,这跟工厂日期的“工厂日期开始”有关,空时默认为0,第1个工作日="工厂日期开始"+1)、表示某日期是否为工作日的标志(如果为工作日则为空,否则将是输入工作日计算方法的标识)3)DATE_GET_WEEK 返回某日期所在的礼拜:根据输入日期,返回该日期所在年份中的周数,注意周日是第7天,如果该周日在哪一年,则相应周的其他日期也在哪一年。
比如2008-12-31是周三,该周的周日是2009-01-04是2009年的第一周,所以输入2008-12-31时,返回是200901。
SAP中日期时间函数总结
CALL FUNCTION 'MONTH_NAMES_GET'
EXPORTING
LANGUAGE = SY-LANGU
* IMPORTING
* RETURN_CODE =
* IMPORTING
* RETURN_CODE =
TABLES
WEEKDAY = WEEKDAY
* EXCEPTIONS
* WEEKDAY_NOT_FOUND = 1
* OTHERS = 2
12、弹窗选择时间
CALL 'F4_CLOCK'
EXPORTING
START_TIME = '15:18:20'或‘151820’"输入时可选的
DISPLAY =
IMPORTING
SELECTED_TIME = “返回选择的时间
13、 年和月的选择窗口
DATA MONTH LIKE ISELLIST-MONTH.
IMPORTING
E_DAYS = E_DAYS "值为50
E_MONTHS = E_MONTHS "值为2
E_YEARS = E_YEARS . "值为1
6、获取输入日期月份的最后一天
OTHERS = 4 .
14、获取周的信息
DATA WEEKDAY LIKE T246 OCCURS 0.
CALL FUNCTION 'WEEKDAY_GET'
* EXPORTING
* LANGUAGE = SY-LANGU
ABAP学习(9):时间日期操作
ABAP学习(9):时间⽇期操作ABAP的时间⽇期操作ABAP的⽇期类型D,是⼀个8位字符串;时间类型T,是6位字符串。
⽇期实际是⼀个字符串,格式;‘YYYYMMDD’,可以通过字符串截取获取年⽉⽇字符⼦串。
⽰例:使⽤字符串截取出年份、⽉份等"⽇期DATA:temp_date(8) TYPE C.temp_date = sy-datum.WRITE:/ temp_date.temp_date = temp_date+2(2).WRITE:/ temp_date.1、判断⽇期是否在指定范围⽰例:WRITE:/'测试⽇期是否在⼀个时间段中'.DATA:date1 type d,date2 type d.date1 = '20181201'.date2 = '20191221'.if sy-datum > date1 and sy-datum < date2.WRITE:/ sy-datum,'在范围内'.else.WRITE:/ sy-datum,'不在范围内'.ENDIF.2、判断⽇期是星期⼏使⽤function,’DAY_IN_WEEK’判断⼀个⽇期是星期⼏⽰例:WRITE:'根据⽇期获取⽇期星期⼏'.DATA: wotnr type p.CALL FUNCTION'DAY_IN_WEEK'EXPORTINGDATUM = sy-datumIMPORTINGWOTNR = wotnr.WRITE:/ sy-datum,'是星期',wotnr.3、根据⽇期获取⽇期所在周数使⽤function,’DATE_GET_WEEK’,获取⽇期所在周数⽰例:CALL FUNCTION'DATE_GET_WEEK'EXPORTINGDATE = sy-datumIMPORTINGWEEK = week4、根据周数获取本周第⼀天⽇期⽰例:WRITE:/ '测试WEEK_GET_FIRST_DAY ,通过周数获取,本周第⼀天'. DATA: date3 type d.CALL FUNCTION'WEEK_GET_FIRST_DAY'EXPORTINGWEEK = weekIMPORTINGDATE = date35、检查⽇期格式是否正确⽰例:WRITE:/ '测试DATE_CHECK_FAILED ,检查⽇期是否正确'.data: date4 type d.data: date5 type d.data: date6 type d.date4 = '20101231'. "需要这种格式⽇期date5 = '12/23/2019'. "不能识别date6 = '12312010'. "不能识别CALL FUNCTION'DATE_CHECK_PLAUSIBILITY'EXPORTINGDATE = date6EXCEPTIONSPLAUSIBILITY_CHECK_FAILED = 1OTHERS = 2.6、根据输⼊⽇期获取所在⽉最后⼀天⽰例:WRITE:/ '测试RP_LAST_DAY_OF_MONTHS,获取输⼊⽇期所在⽉最后⼀天⽇期'. data:date7 type d.CALL FUNCTION'RP_LAST_DAY_OF_MONTHS'EXPORTINGDAY_IN = sy-datumIMPORTINGLAST_DAY_OF_MONTH = date7EXCEPTIONSDAY_IN_NO_DATE = 1.* OTHERS = 27、将输⼊⽇期进⾏计算⽰例:WRITE:/'测试RP_CALC_DATE_IN_INTERVAL ,⽇期加减年,⽉,⽇计算'. data: date8 type d value '20181201'.data: date9 type d.CALL FUNCTION'RP_CALC_DATE_IN_INTERVAL'EXPORTINGDATE = date8DAYS = 20"天MONTHS = 0"⽉SIGNUM = '-'"运算符号YEARS = 1"年IMPORTINGCALC_DATE = date9.WRITE:/ date9.8、获取时间和⽇期之差⽰例:WRITE:/ '测试SD_DATETIME_DIFFERENCE,获取⽇期,和时间之间差'. DATA:date10 type d value '20180911'.data:date11 type d value '20180922'.DATA:date12 type p.data:timediff type p.CALL FUNCTION'SD_DATETIME_DIFFERENCE'EXPORTINGDATE1 = date10TIME1 = '080000'"必须为 hhmmss格式DATE2 = date11TIME2 = '120000'IMPORTINGDATEDIFF = date12TIMEDIFF = timediff.9、获取每个⽉名字⽰例:WRITE:/ '获取每个⽉的名字'.DATA: month_name like t247 OCCURS0WITH HEADER LINE.CALL FUNCTION'MONTH_NAMES_GET'* EXPORTING* LANGUAGE = SY-LANGU* IMPORTING* RETURN_CODE =TABLESMONTH_NAMES = month_name.10、获取⼀段时间内节⽇⽇期⽰例:WRITE:/'获取节⽇表'.DATA: holidays like iscal_day OCCURS0WITH HEADER LINE.DATA: valid_year_from like SCAL-YEAR.DATA: valid_year_to like SCAL-YEAR.DATA: return_code like sy-subrc.CALL FUNCTION'HOLIDAY_GET'EXPORTINGHOLIDAY_CALENDAR = 'CN'"获取holiday calendar id, tcode:scalFACTORY_CALENDAR = 'CN'"获取⼯⼚ calendar id ,通过tcode :SCALDATE_FROM = '20180102'DATE_TO = '20181111'IMPORTINGYEAR_OF_VALID_FROM = valid_year_fromYEAR_OF_VALID_TO = valid_year_toRETURNCODE = return_codeTABLESHOLIDAYS = holidays.11、判断⽇期是否是假⽇使⽤function,’HOLIDAY_CHECK_AND_GET_INFO’判断是否是假⽇,如果是返回值HOLIDAY_FOUND等于‘X’。
