OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE '第' && SY-TABIX && '行日期不合法' TYPE 'S'.
LEAVE LIST-PROCESSING AND RETURN TO SCREEN 0.
ENDIF.
计算两个时间间隔的分钟数
data lv_minutes type i.
call function 'DELTA_TIME_DAY_HOUR'
exporting
t1 = ls_ztwm011-eruhr "开始时间
t2 = sy-uzeit "结束时间
d1 = ls_ztwm011-erdat "开始日期
d2 = sy-datum "结束日期
importing
minutes = lv_minutes.
DAY_ATTRIBUTES_GET
DATA E_DAYS TYPE I.
CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
EXPORTING
I_DATE_FROM = '20110402'
I_DATE_TO = '20110522'
IMPORTING
E_DAYS = E_DAYS "
值为50
E_MONTHS = E_MONTHS "
值为2
E_YEARS = E_YEARS . "
值为1
call function 'DATE_GET_MONTH_LASTDAY'
exporting
i_date = gs_poper-budat_f
importing
e_date = gs_poper-budat_m.
-
计算出一个日期(根据当前日期计算一个日期或返回一个月最后一天)
CALL FUNCTION 'FIMA_DATE_CREATE'
EXPORTING
I_DATE = SY-DATUM
* I_FLG_END_OF_MONTH = ' '
* I_YEARS = 0
* I_MONTHS = 0
I_DAYS = P_DAYS
"
加填正数,减填负数,类型为 I
* I_CALENDAR_DAYS = 0
* I_SET_LAST_DAY_OF_MONTH = ' '
IMPORTING
E_DATE = P_DATE
* E_FLG_END_OF_MONTH =
* E_DAYS_OF_I_DATE =
检查是否是工作日
DATE_CHECK_WORKINGDAY
不同国家时间转换
IB_CONVERT_INTO_TIMESTAMP
先把时间转成时间戳
IB_CONVERT_FROM_TIMESTAMP
再把时间戳转成时间
取当前周(返回6位 4位年+2位周)
DATE_GET_WEEK
期间开始结束日期
data lv_variant type t009b-periv.
data lv_from_date type sy-datum.
data last_normal_period type t009b-poper.
data lv_to_date type sy-datum.
select single periv
into lv_variant
from t001
where bukrs = p_bukrs.
call function 'G_POSTING_DATE_OF_PERIOD_GET'
exporting
period = p_monat
variant = lv_variant
year = p_gjahr
importing
from_date = lv_from_date
to_date = lv_to_date
exceptions
period_not_defined = 1
variant_not_defined = 2.
if sy-subrc <> 0.
message id sy-msgid type 'S' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
leave list-processing.
endif.