相关文章推荐
有胆有识的砖头  ·  【ABAP系列】SAP ...·  2 月前    · 
奔放的包子  ·  Guava ...·  2 年前    · 
无邪的黑框眼镜  ·  javascript - ...·  2 年前    · 
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翔子(可扫头像二维码) 每天分享新知识,博客文章也会陆续整理并迁移至公众号,与您一起共同学习