ABAP 日期时间函数.docx
《ABAP 日期时间函数.docx》由会员分享,可在线阅读,更多相关《ABAP 日期时间函数.docx(32页珍藏版)》请在冰豆网上搜索。
![ABAP 日期时间函数.docx](https://file1.bdocx.com/fileroot1/2023-5/15/3ccb321a-05c0-4205-a36c-f21c30a6c32c/3ccb321a-05c0-4205-a36c-f21c30a6c32c1.gif)
ABAP日期时间函数
ABAP日期时间函数
ABAP日期时间函数收集:
函数名称 (内页-点击名称可查看操作)
函数说明
备注
FIMA_DATE_CREATE
RP_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
获得当前的财政年(fiscalyear)
FIRST_DAY_IN_PERIOD_GET
获得期间首日
LAST_DAY_IN_PERIOD_GET
获得期间末日
函数操作说明:
FIMA_DATE_CREATE函数
获取输入日期前、后的年、月、日
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
DATA:
date TYPEvtbbewe-dvalut,
flag TYPEtrff_flg,
days TYPEtrff_type_n_2.
CALLFUNCTION'FIMA_DATE_CREATE'
EXPORTING
i_date = '20140101'"输入日期
i_flg_end_of_month = ''
i_years =2 "两年后的日期.即输入日期的年加2所得日期,可为负数,表示前两年
i_months =1 "一个月后的日期.即输入日期的月加1所得日期,可为负数,表示前一个月
i_days =23 "23天后的日期。
可为负数,表示23天前的日期
i_calendar_days =10 "10天后的日历。
同I_DAYS参数。
i_set_last_day_of_month= 'X' "返回的日期为当前月份的最后一天
IMPORTING
e_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字段的和。
输出结果:
date:
2016.03.31
flag:
X
days:
24
RP_CALC_DATE_IN_INTERVAL函数
获取输入日期前、后的年、月、日
01
02
03
04
05
06
07
08
09
10
11
DATAcalc_date TYPEp0001-begda.
CALLFUNCTION'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = '20140101' "输入日期
days =10 "天数
months =0 "月数
signum = '+' "+号:
表示N天/月/年后的日期,-号:
表示过去的日期
years =0 "年数
IMPORTING
calc_date=calc_date. "返回结果:
10天后的日期(2014.01.11)
LAST_DAY_OF_MONTHS函数
获取输入日期最后一天的日期
01
02
03
04
05
06
07
08
09
10
DATAdate TYPEsy-datum.
CALLFUNCTION'LAST_DAY_OF_MONTHS'
EXPORTING
day_in = '20140101' "输入日期
IMPORTING
last_day_of_month=date "返回日期:
20140131
EXCEPTIONS
day_in_no_date =1
OTHERS =2.
RP_LAST_DAY_OF_MONTHS函数
获取输入日期最后一天的日期
01
02
03
04
05
06
07
08
09
10
DATAdate TYPEsy-datum.
CALLFUNCTION'RP_LAST_DAY_OF_MONTHS'
EXPORTING
day_in = '20140101' "输入日期
IMPORTING
last_day_of_month=date "返回日期:
20140131
EXCEPTIONS
day_in_no_date =1
OTHERS =2.
BKK_GET_MONTH_LASTDAY函数
获取输入日期最后一天的日期
1
2
3
4
5
6
7
DATAdate TYPEsy-datum.
CALLFUNCTION'BKK_GET_MONTH_LASTDAY'
EXPORTING
i_date= '20140101' "输入日期
IMPORTING
e_date=date. "返回日期:
20140131
CCM_GO_BACK_MONTHS函数
获取输入日期过去N月的日期
1
2
3
4
5
6
7
8
DATAdate TYPEsy-datum.
CALLFUNCTION'CCM_GO_BACK_MONTHS'
EXPORTING
currdate = '20140101' "输入日期
backmonths=3 "过去月数
IMPORTING
newdate =date. "返回日期:
20131001
MONTH_PLUS_DETERMINE函数
获取输入日期后来N月的日期
1
2
3
4
5
6
7
8
DATAdate TYPEsy-datum.
CALLFUNCTION'MONTH_PLUS_DETERMINE'
EXPORTING
months =3
olddate= '20140101' "输入日期
IMPORTING
newdate=date. "返回日期:
20140401
DATE_GET_WEEK函数
获取输入日期该年的周数,输出格式为:
YYYYWW。
01
02
03
04
05
06
07
08
09
10
DATAweek TYPEscal-week.
CALLFUNCTION'DATE_GET_WEEK'
EXPORTING
date = '20140101' "输入日期
IMPORTING
week =week "返回周数:
201401
EXCEPTIONS
date_invalid=1
OTHERS =2.
WEEK_GET_FIRST_DAY函数
获取输入周数的第一天
01
02
03
04
05
06
07
08
09
10
DATAdate TYPEsy-datum.
CALLFUNCTION'WEEK_GET_FIRST_DAY'
EXPORTING
week = '201401' "输入周
IMPORTING
date =date "返回该周第一天(周一):
2013.12.30
EXCEPTIONS
week_invalid=1
OTHERS =2.
DAY_IN_WEEK函数
获取输入日期该天是星期几/周几
1
2
3
4
5
6
7
DATAwotnr TYPEp.
CALLFUNCTION'DAY_IN_WEEK'
EXPORTING
datum= '20140101' "输入日期
IMPORTING
wotnr=wotnr. "返回:
3=》星期三/周三
GET_WEEK_INFO_BASED_ON_DATE函数
获取输入日期该年的周数和这周周一、周日日期(周起始日是周一)
01
02
03
04
05
06
07
08
09
10
11
DATA:
week TYPEscal-week,
monday TYPEsy-datum,
sunday TYPEsy-datum.
CALLFUNCTION'GET_WEEK_INFO_BASED_ON_DATE'
EXPORTING
date = '20140101'
IMPORTING
week =week "返回周数:
201401
monday=monday "返回周一日期:
2013.12.30
sunday=sunday. "返回周日日期:
2014.01.05
HR_GBSSP_GET_WEEK_DATES函数
获取查询日期该年的第几周和这周周一、周日日期,该天是星期几/周几(周起始日是周日)
01
02
03
04
05
06
07
08
09
10
11
12
13
14
DATA:
sunday TYPEsy-datum,
saturday TYPEsy-datum,
day_in_week TYPEi,
week_no TYPEp08_weekno.
CALLFUNCTION'HR_GBSSP_GET_WEEK_DATES'
EXPORTING
p_pdate = '20140101' "输入日期
IMPORTING
p_sunday =sunday "返回本周开始日期(周日):
2013.12.29
p_saturday =saturday "返回本周结束日期(周六):
2014.01.04
p_day_in_week=day_in_week "返回该日星期几/周几:
4=>星期三/周三
"(这周中的第4天,由于开始日期是周日,故需要-1)
p_week_no =week_no. "返回本周开始日期的周数:
201352
HOLIDAY_CHECK_AND_GET_INFO 函数
判断某天是否是假日
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
DATAholiday TYPEc.
DATAattributes TYPESORTED TABLEOFthol.
CALLFUNCTION'HOLIDAY_CHECK_AND_GET_INFO'
EXPORTING
date = '20140201' "输入日期:
春节
holiday_calendar_id = 'ZS' "假日日历ID
with_holiday_attributes = '' "属性标识
IMPORTING
holiday_found =holiday "输出是否为假日的标记 输出结果:
X
TABLES
holiday_attributes =attributes "输出该假日的属性
"若WITH_HOLIDAY_ATTRIBUTES参数=X,则会带出属性记录
EXCEPTIONS
calendar_buffer_not_loadable=1
date_after_range =2
date_before_range =3
date_invalid =4
holiday_calendar_id_missing =5
holiday_calendar_not_found =6
OTHERS =7.
CONVERT_DATE_TO_INTERNAL函数
将标准日期格式转换为内部数字格式
日期的格式与用户参数有关,转化为内部数字格式时,都为:
YYYYMMDD.
01
02
03
04
05
06
07
08
09
10
11
DATAdate TYPEsy-datum.
CALLFUNCTION'CONVERT_DATE_TO_INTERNAL'
EXPORTING
date_external = '2014.01.01'"当前用户日期格式:
YYYY.MM.DD
accept_initial_date = ''
IMPORTING
date_internal =date "输出20140101
EXCEPTIONS
date_external_is_invalid=1
OTHERS =2.
CONVERT_DATE_TO_EXTERNAL函数
将内部数字日期格式转换为系统日期格式
系统日期格式输出时,与用户参数设置有关
01
02
03
04
05
06
07
08
09
10
DATAdate2(10) TYPEc.
CALLFUNCTION'CONVERT_DATE_TO_EXTERNAL'
EXPORTING
date_internal = '20140101'
IMPORTING
date_external =date2 "根据用户日期格式参数输出:
YYYY.MM.DD
EXCEPTIONS
date_internal_is_invalid=1
OTHERS =2.
DATE_CONVERT_TO_FACTORYDATE函数
根据日期返回工厂日历日期
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
DATA:
date TYPEscal-date,
factorydate TYPEfacdate,
workingday TYPEscal-indicator.
CALLFUNCTION'DATE_CONVERT_TO_FACTORYDATE'
EXPORTING
correct_option = '+' "表示工作日计算方式的标记
date = '20140101' "必须转换的日期
factory_calendar_id = 'ZS' "工厂日历ID
IMPORTING
date =date "工厂日历日期
factorydate =factorydate "指定日历中的工作日数
workingday_indicator =workingday "表示某日期是否为工作日的标志
EXCEPTIONS
calendar_buffer_not_loadable=1
correct_option_invalid =2
date_after_range =3
date_before_range =4
date_invalid =5
factory_calendar_not_found =6
OTHERS =7.
输出结果:
date:
20140102
factorydate:
1531
workingday:
+
HR_99S_INTERVAL_BETWEEN_DATES函数
获取两个日期期间的:
天数、周数、月数、年数;
包括期间月份的开始(月份第一天日期)、截止日期(月份最后一天日期)
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
TYPE-POOLS:
p99sg.
DATA:
days TYPEi,
weeks TYPEi,
months TYPEi,
years TYPEi.
DATA:
month_tab TYPESTANDARDTABLEOFp99sg_month_tab_row.
CALLFUNCTION'HR_99S_INTERVAL_BETWEEN_DATES'
EXPORTING
begda = '20130101' "开始日期
endda = '20140101' "截止日期
IMPORTING
days =days "返回天数:
266
c_weeks =weeks "返回周数:
52
c_months =months "返回月数:
12
c_years =years "返回年数:
1
month_tab=month_tab. "期间月份首尾日
month_tab内容明细:
FIMA_DAYS_AND_MONTHS_AND_YEARS函数
计算两个日期期间的天数
01
02
03
04
05
06
07
08