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 =
'20140101'
"输入日期
days = 10
"天数
months = 0
"月数
signum =
'+'
"+号:表示 N天/月/年后的日期, -号:表示过去的日期
years = 0
"年数
IMPORTING
calc_date = calc_date.
"返回结果:10天后的日期(2014.01.11)
day_in =
'20140101'
"输入日期
IMPORTING
last_day_of_month = date
"返回日期:20140131
EXCEPTIONS
day_in_no_date = 1
OTHERS
= 2.
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.
week =
'201401'
"输入周
IMPORTING
date = date
"返回该周第一天(周一):2013.12.30
EXCEPTIONS
week_invalid = 1
OTHERS
= 2.
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
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.
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.
date_internal =
'20140101'
IMPORTING
date_external = date2
"根据用户日期格式参数输出:YYYY.MM.DD
EXCEPTIONS
date_internal_is_invalid = 1
OTHERS
= 2.
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.
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.
"期间月份首尾日
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
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
IMPORTING
datediff = datediff
"返回日期差:0
timediff = timediff
"返回时间差:16
earliest = earliest
"返回时间正负:2,1-负 0-相等 2-正
EXCEPTIONS
invalid_datetime = 1
OTHERS
= 2.
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
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.
language = sy-langu
"系统当前语言
IMPORTING
return_code = return_code
"返回 SY-SUBRC
TABLES
weekday = weekday
"返回星期名字信息
EXCEPTIONS
weekday_not_found = 1
OTHERS
= 2.
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.
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.
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.
IF
return_code = 0.
p_year = selected_month+0(4).
p_month = selected_month+4(2).
ENDIF
.
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.
"返回选择周最后一天
本人常年接收SAP运维和远程项目,ECC,S/4HANA,CRM,WDA.
远程人天可谈,终身售后,有活请联系V信:18925782767(问问题免费,欢迎交流!)
!!请关注本人技术分享公众号:SAP翔子(可扫头像二维码)
每天分享新知识,博客文章也会陆续整理并迁移至公众号,与您一起共同学习