糟心的日期函数
1、獲得最后一天
CALL FUNCTION 'FIMA_DATE_CREATE'
? EXPORTING
?? I_DATE?????????????????????? = I_DATE "輸入日期。sy-datum類型 如:‘20110402’。
?? I_FLG_END_OF_MONTH??????????? = ' '
?? I_YEARS?????????????????????? = 2 "兩年后的日期時(shí)間,既sy-datum的年加2所得日期,可為負(fù)數(shù),表示前兩年
?? I_MONTHS????????????????????? = 1 "一個(gè)月后的日期。既sy-datum的月加1所得日期,可為負(fù)數(shù),表示前一個(gè)月
?? I_DAYS??????????????????????? = 23 "23天后的日期。可為負(fù)數(shù),表示23天前的日期
?? I_CALENDAR_DAYS?????????????? = 10 "10天后的日歷。同I_DAYS參數(shù)。
?? I_SET_LAST_DAY_OF_MONTH?????? = 'X' "返回的日期為當(dāng)前月份的最后一天
?IMPORTING
?? E_DATE??????????????????????? = E_DATE?"返回的日期。如果I_DAYS和I_CALENDAR_DAYS都設(shè)置,則天數(shù)累加
?? E_FLG_END_OF_MONTH??????????? = FLAG???? "如果輸入?yún)?shù)I_SET_LAST_DAY_OF_MONTH設(shè)置'X'了,則返回值為'X'。
?? E_DAYS_OF_I_DATE????????????? = DAY.?"返回輸入日期的‘日’字段與I_DAYS字段的和。本例子為:25
??
2、獲得周數(shù)
DATA WEEK LIKE SCAL-WEEK.
CALL FUNCTION 'DATE_GET_WEEK'
? EXPORTING
??? DATE?????????????? = SY-DATUM ”輸入日期,如:‘20110402’
?IMPORTING
?? WEEK?????????????? = WEEK.“返回輸入日期為該年第幾周。如:‘201113’。表示為2011年的第13周。
3、獲得某周的第一天日期
DATA DATE LIKE SCAL-DATE.
CALL FUNCTION 'WEEK_GET_FIRST_DAY'
? EXPORTING
??? WEEK?????????????? = '201113' "表示2011年的第13周
?IMPORTING
?? DATE?????????????? = DATE. "返回的DATE值為20110328,既2011年第13周的第一天是3月28日。
??
4、得到輸入日期N個(gè)月前/后的日期
4.1 返回指定月以前的日期
CALL FUNCTION 'CCM_GO_BACK_MONTHS'
? EXPORTING
??? CURRDATE???????? = sy-datum
??? BACKMONTHS?????? = 6
?IMPORTING
?? NEWDATE????????? = DATE .?
4.2 返回指定年,月,日以前或以后的日期.年月日得加減
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
? EXPORTING
??? DATE??????????? = sy-datum
??? DAYS??????????? = 10
??? MONTHS????????? = 5
?? SIGNUM????????? = '+'"取值為‘+’或‘-’
??? YEARS?????????? = 1
?IMPORTING
?? CALC_DATE?????? = date? .
5、返回兩個(gè)日期之間的年數(shù)、月數(shù)、天數(shù)
CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
? EXPORTING
??? I_DATE_FROM????????? = '20110402'
*?? I_KEY_DAY_FROM?????? =
??? I_DATE_TO??????????? = '20110522'
*?? I_KEY_DAY_TO???????? =
*?? I_FLG_SEPARATE?????? = ' '
?IMPORTING
?? E_DAYS?????????????? = E_DAYS??? "值為50
?? E_MONTHS???????????? = E_MONTHS?"值為2
?? E_YEARS????????????? = E_YEARS .? "值為1
??
6、獲取輸入日期月份的最后一天
BKK_GET_MONTH_LASTDAY
?EXPORTING
??I_DATE = '20110403'
?IMPORTING
??E_DATE = E_DATE. "E_DATE= '20110430'
7、日期有效性檢查
?DATE_CHECK_PLAUSIBILITY
8、獲得所有的月份信息
DATA MONTH_NAMES LIKE T247 OCCURS 0.
CALL FUNCTION 'MONTH_NAMES_GET'
?EXPORTING
?? LANGUAGE??????????????????? = SY-LANGU
* IMPORTING
*?? RETURN_CODE???????????????? =
? TABLES
??? MONTH_NAMES???????????????? = MONTH_NAMES
* EXCEPTIONS
*?? MONTH_NAMES_NOT_FOUND?????? = 1
*?? OTHERS????????????????????? = 2
????????? .
9.彈出一個(gè)窗口顯示一個(gè)日歷允許用戶選擇一個(gè)日期
CALL FUNCTION 'F4_DATE'
?EXPORTING
?? DATE_FOR_FIRST_MONTH?????????????? = SY-DATUM
?? DISPLAY??????????????????????????? = 'X' "如果為X則只顯示日歷窗口,而沒有返回值
*?? FACTORY_CALENDAR_ID??????????????? = ' '
*?? GREGORIAN_CALENDAR_FLAG??????????? = ' '
*?? HOLIDAY_CALENDAR_ID??????????????? = ' '
*?? PROGNAME_FOR_FIRST_MONTH?????????? = ' '
?IMPORTING
?? SELECT_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???
??
10、獲取一年的第幾周和這個(gè)周一和周日的日期
FM:GET_WEEK_INFO_BASED_ON_DATE
輸入?yún)?shù)??????????????????????? 值
DATE??????????????????????????? 2008.01.09
輸出參數(shù)??????????????????????? 值
WEEK??????????????????????????? 200802????? <----2008年第二周
MONDAY????????????????????????? 2008.01.07 <----這個(gè)周周一的日期
SUNDAY????????????????????????? 2008.01.13 <----周日的日期
?
11、輸入日期是星期幾
FM:DAY_IN_WEEK
輸入?yún)?shù)??????????????????????? 值
DATUM?????????????????????????? 2008.01.09
輸出參數(shù)??????????????????????? 值
WOTNR?????????????????????????? 3?????????? <----2008-1-9為周三
12、彈窗選擇時(shí)間
CALL 'F4_CLOCK'
?EXPORTING
??START_TIME = '15:18:20'或‘151820’"輸入時(shí)可選的
??DISPLAY??? =
?IMPORTING
??SELECTED_TIME = “返回選擇的時(shí)間
13、 年和月的選擇窗口
DATA MONTH LIKE ISELLIST-MONTH.
CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
? EXPORTING
??? ACTUAL_MONTH???????????????????? = SY-DATUM+0(6)
*?? FACTORY_CALENDAR???????????????? = ' '
*?? HOLIDAY_CALENDAR???????????????? = ' '
?? LANGUAGE???????????????????????? = SY-LANGU
?? START_COLUMN???????????????????? = 8
?? START_ROW??????????????????????? = 5
?IMPORTING
?? SELECTED_MONTH?????????????????? = MONTH "返回值為六位數(shù)字
*?? RETURN_CODE????????????????????? =
?EXCEPTIONS
?? FACTORY_CALENDAR_NOT_FOUND?????? = 1
?? HOLIDAY_CALENDAR_NOT_FOUND?????? = 2
?? MONTH_NOT_FOUND????????????????? = 3
?? OTHERS?????????????????????????? = 4??.
??
14、獲取周的信息
DATA WEEKDAY LIKE T246 OCCURS 0.
CALL FUNCTION 'WEEKDAY_GET'
* EXPORTING
*?? LANGUAGE??????????????? = SY-LANGU
* IMPORTING
*?? RETURN_CODE???????????? =
? TABLES
??? WEEKDAY???????????????? = WEEKDAY
* EXCEPTIONS
*?? WEEKDAY_NOT_FOUND?????? = 1
*?? OTHERS????????????????? = 2??
總結(jié)
- 上一篇: Win8下的SAP安装初体验
- 下一篇: 税务审计SAP需要用表