*----------------------------
*时间差
*----------------------------
SD_DATETIME_DIFFERENCE
L_TO_TIME_DIFF
*----------------------------
*取当前时间
*----------------------------
GET TIME
GET RUN TIME FIELD (INT)
"计算时间差 --
convert time stamp t2 time zone sy-zonlo into date dat2 time tim2.
call function 'SWI_DURATION_DETERMINE'
exporting
start_date = dat1
end_date = dat2
start_time = tim1
end_time = tim2
importing
duration = runtime. "秒
call function 'MONI_TIME_CONVERT'
exporting
ld_duration = runtime
importing
lt_output_duration = outtime. "格式化为 HH:MM:SS
*----------------------------
*日期
*----------------------------
*日期有效性
DATE_CHECK_PLAUSIBILITY
*根据日期返回工厂日历日期:输入三个参数,日期、工厂日历版本和纠正选项,其中纠正选项为“+”,
*则当输入日期是休息日时,返回其后的第一个工作日,纠正选项为“-”,则当输入日期时休息日时,返回其前最后一个工作日。
*输出三个参数,日期、工厂日期和纠正结果,其中日期就是输入值、工厂时期时计算获得的日期、纠正结果的意义与纠正选项相同,
*但是如果输入日期就是工作日,则纠正结果为空。
DATE_CONVERT_TO_FACTORYDATE
*向指定的日期上增加若干个月,并返回结果日期
*如果 MONTHS 指定为负数,则相当于在原始日期基础上减去若干个月。
*如果 MONTHS 指定为小数,则按照四舍五入的方法转换成整数后再计算,不会把小数再转换成天。
*对于日期为月末的情况,该函数会自动转换为目标月的月末日期。
*例如,2008-03-31 加上一个月就是 2008-04-30,减去一个月就是 2008-02-29。
BKK_ADD_MONTH_TO_DATE
*获得一个月的最后一天
RP_LAST_DAY_OF_MONTHS
LAST_DAY_OF_MONTHS
*上月最后一天
CALL FUNCTION 'FIMA_DATE_CREATE'
EXPORTING
i_date = sy-datum
i_months = '-1'
i_set_last_day_of_month = 'X'
IMPORTING
e_date = zdate3.
*检查日期合法性
DATE_CHECK_PLAUSIBILITY
*判断某天是否是假日
HOLIDAY_CHECK_AND_GET_INFO
*年月选择
POPUP_TO_SELECT_MONTH
*内外码转换
CONVERT_DATE_TO_EXTERNAL
CONVERT_DATE_TO_INTERNAL
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
函数名称 (内页-点击名称可查看操作) 函数说明 备注
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 获得当前的财政年(fiscal year)
FIRST_DAY_IN_PERIOD_GET 获得期间首日
LAST_DAY_IN_PERIOD_GET 获得期间末日
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
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字段的和。
--------------------------------------------------------------------------------------------------------
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.
--------------------------------------------------------------------------------------------------------
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. "期间月份首尾日
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
日期时间 FUNCTION
最新推荐文章于 2024-01-26 10:32:01 发布