FIMA_DATE_CREATE 函数
获取输入日期前、后的年、月、日
-
DATA:
date TYPE vtbbewe
-dvalut,
-
flag TYPE trff_flg,
-
days TYPE trff_type_n_2.
-
CALL
FUNCTION
'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 函数
获取输入日期前、后的年、月、日
-
DATA calc_date TYPE p0001
-begda.
-
CALL
FUNCTION
'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 函数
获取输入日期最后一天的日期
-
DATA
date TYPE sy
-datum.
-
CALL
FUNCTION
'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 函数
获取输入日期最后一天的日期
-
DATA
date TYPE sy
-datum.
-
CALL
FUNCTION
'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 函数
获取输入日期最后一天的日期
-
DATA
date TYPE sy
-datum.
-
CALL
FUNCTION
'BKK_GET_MONTH_LASTDAY'
-
EXPORTING
-
i_date
=
'20140101' "输入日期
-
IMPORTING
-
e_date = date. "返回日期:
20140131
CCM_GO_BACK_MONTHS 函数
获取输入日期过去N月的日期
-
DATA
date TYPE sy
-datum.
-
CALL
FUNCTION
'CCM_GO_BACK_MONTHS'
-
EXPORTING
-
currdate
=
'20140101' "输入日期
-
backmonths = 3 "过去月数
-
IMPORTING
-
newdate
= date. "返回日期:20131001
MONTH_PLUS_DETERMINE 函数
获取输入日期后来N月的日期
-
DATA
date TYPE sy
-datum.
-
CALL
FUNCTION
'MONTH_PLUS_DETERMINE'
-
EXPORTING
-
months
=
3
-
olddate
=
'20140101' "输入日期
-
IMPORTING
-
newdate = date. "返回日期:
20140401
DATE_GET_WEEK 函数
获取输入日期该年的周数,输出格式为:YYYYWW。
-
DATA week TYPE scal
-week.
-
CALL
FUNCTION
'DATE_GET_WEEK'
-
EXPORTING
-
date
=
'20140101' "输入日期
-
IMPORTING
-
week = week "返回周数:
201401
-
EXCEPTIONS
-
date_invalid
=
1
-
OTHERS
=
2.
WEEK_GET_FIRST_DAY 函数
获取输入周数的第一天
-
DATA
date TYPE sy
-datum.
-
CALL
FUNCTION
'WEEK_GET_FIRST_DAY'
-
EXPORTING
-
week
=
'201401' "输入周
-
IMPORTING
-
date = date "返回该周第一天(周一):
2013.12
.30
-
EXCEPTIONS
-
week_invalid
=
1
-
OTHERS
=
2.
DAY_IN_WEEK 函数
获取输入日期该天是星期几/周几
-
DATA wotnr TYPE p.
-
CALL
FUNCTION
'DAY_IN_WEEK'
-
EXPORTING
-
datum
=
'20140101' "输入日期
-
IMPORTING
-
wotnr = wotnr. "返回:
3
=》星期三
/周三
GET_WEEK_INFO_BASED_ON_DATE 函数
获取输入日期该年的周数和这周周一、周日日期(周起始日是周一)
-
DATA: week TYPE scal
-week ,
-
monday TYPE sy
-datum,
-
sunday TYPE sy
-datum.
-
CALL
FUNCTION
'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 函数
获取查询日期该年的第几周和这周周一、周日日期,该天是星期几/周几(周起始日是周日)
-
DATA:sunday TYPE sy
-datum,
-
saturday TYPE sy
-datum,
-
day_in_week TYPE i,
-
week_no TYPE p08_weekno.
-
CALL
FUNCTION
'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 函数
判断某天是否是假日
-
DATA holiday TYPE c.
-
DATA attributes TYPE SORTED
TABLE
OF thol.
-
CALL
FUNCTION
'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.
-
DATA
date TYPE sy
-datum.
-
CALL
FUNCTION
'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 函数
将内部数字日期格式转换为系统日期格式
系统日期格式输出时,与用户参数设置有关
-
DATA date2(
10) TYPE c.
-
CALL
FUNCTION
'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 函数
根据日期返回工厂日历日期
-
DATA:
date TYPE scal
-
date,
-
factorydate TYPE facdate,
-
workingday TYPE scal
-indicator.
-
CALL
FUNCTION
'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 函数
获取两个日期期间的:天数、周数、月数、年数;
包括期间月份的开始(月份第一天日期)、截止日期(月份最后一天日期)
-
TYPE
-POOLS: p99sg.
-
DATA:days TYPE i,
-
weeks TYPE i,
-
months TYPE i,
-
years TYPE i.
-
DATA: month_tab TYPE STANDARD
TABLE
OF p99sg_month_tab_row.
-
CALL
FUNCTION
'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 函数
计算两个日期期间的天数
-
*不单独计算
-
DATA:days TYPE i,
-
months TYPE i,
-
years TYPE i.
-
CALL
FUNCTION
'FIMA_DAYS_AND_MONTHS_AND_YEARS'
-
EXPORTING
-
i_date_from
=
'20130101'
-
i_date_to
=
'20141001'
-
i_flg_separate
=
' ' "是否单独计算 若有标识,则返回两日期相差的天数
-
IMPORTING
-
e_days = days "返回天数:
638
-
e_months
= months "返回月数:21
-
e_years = years. "返回年数:
2
-
* 单独计算
-
CALL
FUNCTION
'FIMA_DAYS_AND_MONTHS_AND_YEARS'
-
EXPORTING
-
i_date_from
=
'20130101'
-
i_date_to
=
'20141001'
-
i_flg_separate
=
'X' "标识 'X'
-
IMPORTING
-
e_days = days "返回天数:
0
-
e_months
= months "返回月数:9
-
e_years = years. "返回年数:
1
FIMA_DATE_COMPARE 函数
比较两个日期大小,返回结果是关系操作符:GT、EQ、LT
-
TYPE
-POOLS trff .
-
DATA log_op TYPE trff_type_c_2.
-
CALL
FUNCTION
'FIMA_DATE_COMPARE'
-
EXPORTING
-
i_flg_intraday
=
' '
-
i_date
=
'20140101'
-
i_time
=
'000000'
-
i_sincl
=
'0' "计算期间开始的排除标识
-
i_sult = ' ' "计算期间开始的月末标识符
-
i_comp_date
=
'20140201' "比较日期
-
i_comp_time = '000000' "比较时间
-
i_comp_sincl
=
'0' "计算期间结束的包含标识
-
i_comp_sult = ' ' "计算期间结束的月末标识符
-
IMPORTING
-
e_log_op
= log_op. "返回比较结果:LT
SD_DATETIME_DIFFERENCE 函数
两个日期作差,即是两个日期相减,包括当天时间。
-
DATA: datediff TYPE p,
-
timediff TYPE p,
-
earliest TYPE c.
-
CALL
FUNCTION
'SD_DATETIME_DIFFERENCE'
-
EXPORTING
-
date1
=
'20140101'
-
time1
=
'240000'
-
date2
=
'20140101'
-
time2
=
'083000'
-
IMPORTING
-
datediff
= datediff "返回日期差:0
-
timediff = timediff "返回时间差:
16
-
earliest
= earliest "返回时间正负:2,1-负 0-相等 2-正
-
EXCEPTIONS
-
invalid_datetime = 1
-
OTHERS = 2.
HRVE_CONVERT_TIME 函数
12小时制与24小时制的时间转换,例如:07:00:00 pm -> 19:00:00。
-
DATA
:lv_in_time
TYPE tims,
-
lv_out_time
TYPE tims,
-
lv_am_pm
TYPE c.
-
lv_in_time =
'060000'.
-
CALL
FUNCTION
'HRVE_CONVERT_TIME'
-
EXPORTING
-
type_time =
'B'
" A = 24小时制 -> 12小时制 B = 12小时制 -> 24小时制
-
input_time = lv_in_time
-
input_am_pm = 'PM'
-
IMPORTING
-
output_time = lv_out_time
-
output_am_pm = lv_am_pm
-
EXCEPTIONS
-
parameter_error = 1
-
OTHERS = 2.
-
-
WRITE:/ | Input Time - { lv_in_time }|. " 输出:
060000
-
WRITE
:/ |
Output Time - { lv_out_time }|.
" 输出:180000
-
MONTH_NAMES_GET 函数
获取所有的月份名字信息
-
DATA return_code TYPE sy
-subrc.
-
DATA month_names TYPE STANDARD
TABLE
OF t247.
-
CALL
FUNCTION
'MONTH_NAMES_GET'
-
EXPORTING
-
language
= sy
-langu "系统当前语言
-
IMPORTING
-
return_code = return_code "返回 SY
-SUBRC
-
TABLES
-
month_names
= month_names "返回月份信息
-
EXCEPTIONS
-
month_names_not_found = 1
-
OTHERS = 2.
month_names 明细内容:
WEEKDAY_GET 函数
获取所有的星期名字
-
DATA return_code TYPE sy
-subrc.
-
DATA weekday TYPE STANDARD
TABLE
OF t246.
-
CALL
FUNCTION
'WEEKDAY_GET'
-
EXPORTING
-
language
= sy
-langu "系统当前语言
-
IMPORTING
-
return_code = return_code "返回 SY
-SUBRC
-
TABLES
-
weekday
= weekday "返回星期名字信息
-
EXCEPTIONS
-
weekday_not_found = 1
-
OTHERS = 2.
weekday 内容明细:
DAY_ATTRIBUTES_GET 函数
查看日期属性 包括:该日期是星期几,第几天,是否公共假期等;
公共假期等内容需要输入国家日历。
-
DATA: year_of_valid_from TYPE scal
-
year,
-
year_of_valid_to TYPE scal
-
year,
-
return_code TYPE sy
-subrc.
-
DATA day_attributes TYPE STANDARD
TABLE
OF casdayattr.
-
CALL
FUNCTION
'DAY_ATTRIBUTES_GET'
-
EXPORTING
-
factory_calendar
=
' ' "工厂日历ID
-
holiday_calendar = ' ' "假期日历ID
-
date_from
=
'20140101' "开始日期
-
date_to = '20140110' "截止日期
-
language
= sy
-langu "系统当前语言
-
non_iso = ' '
-
IMPORTING
-
year_of_valid_from = year_of_valid_from
-
year_of_valid_to = year_of_valid_to
-
returncode = return_code
-
TABLES
-
day_attributes = day_attributes "返回日期每日属性
-
EXCEPTIONS
-
factory_calendar_not_found
=
1
-
holiday_calendar_not_found
=
2
-
date_has_invalid_format
=
3
-
date_inconsistency
=
4
-
OTHERS
=
5.
day_attributes 内容明细:
F4_DATE 函数
为 F4 帮助显示日历,弹出日历对话框,供用户选择日期
-
PARAMETERS:p1(
6)
TYPE c.
-
AT SELECTION-SCREEN
ON VALUE-REQUEST
FOR p1.
-
DATA:l_date
TYPE sy-datum.
-
CALL
FUNCTION 'F4_DATE'
-
EXPORTING
-
date_for_first_month =
sy-
datum
-
IMPORTING
-
select_date =
l_date "用户选择后返回的日期
-
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.
-
显示效果:
F4_CLOCK 函数
为 F4 帮助显示时间,弹出时间对话框,供用户选择时间
-
PARAMETERS:p1(
6) TYPE c.
-
AT SELECTION-SCREEN
ON VALUE-REQUEST
FOR p1.
-
DATA: l_time TYPE sy-uzeit.
-
CALL
FUNCTION
'F4_CLOCK'
-
EXPORTING
-
start_time = sy-uzeit
-
display =
' '
-
IMPORTING
-
selected_time = l_time.
效果显示:
POPUP_TO_SELECT_MONTH 函数
为 F4 帮助显示月份:弹出选择年和月的对话框
-
PARAMETERS: p_year TYPE mard
-lfgja
DEFAULT sy
-datum
+
0(
4),
-
p_month TYPE mard
-lfmon.
-
AT SELECTION
-SCREEN
ON
VALUE
-REQUEST
FOR p_month.
-
DATA: actual_month
LIKE isellist
-
month,
-
selected_month
LIKE isellist
-
month,
-
return_code TYPE sy
-subrc.
-
CONCATENATE p_year sy
-datum
+
4(
2)
INTO actual_month.
-
CALL
FUNCTION
'POPUP_TO_SELECT_MONTH'
-
EXPORTING
-
actual_month
= actual_month "传入年份
-
factory_calendar = ' ' "工厂日历 ID
-
holiday_calendar
=
' ' "假日日历 ID
-
language = sy-langu "当前系统语言
-
start_column
=
8 "弹出框屏幕位置
-
start_row = 5 "弹出框屏幕位置
-
IMPORTING
-
selected_month
= selected_month "返回用户输入月份
-
return_code = return_code "返回 sy
-subrc
-
EXCEPTIONS
-
factory_calendar_not_found
=
1
-
holiday_calendar_not_found
=
2
-
month_not_found
=
3
-
OTHERS
=
4.
效果显示:
POPUP_CALENDAR_SDB 函数
弹出选择周的对话框
-
DATA: begin_date TYPE sy
-datum,
-
end_date TYPE sy
-datum.
-
CALL
FUNCTION
'POPUP_CALENDAR_SDB'
-
EXPORTING
-
sel_day
=
'X' "启用天 选择
-
sel_week = 'X' "启用周 选择
-
sel_month
=
'X' "启用月 选择
-
sel_interval = 'X'
-
focus_day = sy-datum "默认选择日期
-
IMPORTING
-
begin_date
= begin_date "返回选择周第一天
-
end_date = end_date. "返回选择周最后一天
效果显示:
GET_CURRENT_YEAR 函数
获得当前的财政年(Fiscal year)
-
DATA: currm TYPE bkpf
-monat,
-
curry TYPE bkpf
-gjahr,
-
prevm TYPE bkpf
-monat,
-
prevy TYPE bkpf
-gjahr.
-
CALL
FUNCTION
'GET_CURRENT_YEAR'
-
EXPORTING
-
bukrs
=
'3010' "输入公司代码
-
date = sy-datum "输入日期
-
IMPORTING
-
currm
= currm "当前会计期间
-
curry = curry "当前会计年度
-
prevm
= prevm "上期会计期间
-
prevy = prevy. "上期会计年度