1.獲取輸入日期月份的最后一天:
DATA: lv_date TYPE sy-datum.
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
day_in = '20140101' "輸入日期
IMPORTING
last_day_of_month = lv_date "返回日期:20140131
EXCEPTIONS
day_in_no_date = 1
OTHERS = 2.
2.獲取兩個日期之間的天、周、月、年數:
TYPE-POOLS: p99sg.
DATA: lv_days TYPE i,
lv_weeks TYPE i,
lv_months TYPE i,
lv_years TYPE i.
DATA: month_tab TYPE STANDARD TABLE OF p99sg_month_tab_row.
CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'
EXPORTING
begda = '20150101' "開始日期
endda = '20160101' "截止日期
IMPORTING
days = lv_days "返回天數:266
c_weeks = lv_weeks "返回周數:52
c_months = lv_months "返回月數:12
c_years = lv_years "返回年數:1
month_tab = month_tab. "期間月份首尾日
3.獲取輸入日期的星期數:
DATA lv_week TYPE p.
CALL FUNCTION 'DAY_IN_WEEK'
EXPORTING
datum = '20200101' "輸入日期"
IMPORTING
wotnr = lv_week. "返回:3"
4.轉換日期為內部數字格式:
DATA: lv_date TYPE sy-datum.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
date_external = '2016.01.01' "當前用戶日期格式:YYYY.MM.DD
accept_initial_date = ' '
IMPORTING
date_internal = lv_date "輸出:20160101"
EXCEPTIONS
date_external_is_invalid = 1
OTHERS = 2.
5.轉換日期為外部數字格式:
DATA: lv_date TYPE sy-datum.
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
EXPORTING
date_internal = '20160101' "當前日期格式"
IMPORTING
date_external = lv_date "輸出:2016.01.01 "
EXCEPTIONS
date_internal_is_invalid = 1
OTHERS = 2.
6.獲取過去 N 月的日期:
DATA date TYPE sy-datum.
CALL FUNCTION 'CCM_GO_BACK_MONTHS'
EXPORTING
currdate = '20140101' "輸入日期"
backmonths = 3 "過去3月"
IMPORTING
newdate = date. "20131001"
7.獲取未來 N 月的日期:
DATA date TYPE sy-datum.
CALL FUNCTION 'MONTH_PLUS_DETERMINE'
EXPORTING
months = 4 "未來4月"
olddate = '20140101' "輸入日期"
IMPORTING
newdate = date. "20140501"
8.F4 日期選擇框:
DATA sel_date TYPE sy-datum.
CALL FUNCTION 'F4_DATE'
EXPORTING
DATE_FOR_FIRST_MONTH = SY-DATUM "默認系統當前日期"
IMPORTING
select_date = sel_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.
9.F4 時間選擇框:
DATA sel_time TYPE sy-uzeit.
CALL FUNCTION 'F4_CLOCK'
EXPORTING
start_time = sy-uzeit "默認系統當前時間"
IMPORTING
selected_time = sel_time. "用戶選擇時間"
10.獲取兩個日期之間的詳細信息:
DATA: lv_month_start TYPE dats , "月初日期"
lv_month_end TYPE dats , "月末日期"
lv_days TYPE i . "月總天數"
DATA day_attributes TYPE STANDARD TABLE OF casdayattr WITH HEADER LINE.
CALL FUNCTION 'DAY_ATTRIBUTES_GET'
EXPORTING
factory_calendar = ' ' "工廠日歷ID
holiday_calendar = ' ' "假期日歷ID
date_from = lv_month_start "月開始日期
date_to = lv_month_end "月結束日期
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.
* 獲取當月總天數
lv_days = lines( day_attributes[] ).
11.日期轉時間戳:
DATA: lv_timestamp LIKE tzonref-tstamps.
CALL FUNCTION 'CIF_GEN4_CONVERT_DATETIME'
EXPORTING
iv_date = sy-datum
iv_time = sy-uzeit
* IV_TIMEZONE = SY-ZONLO
IMPORTING
ev_timestamp = lv_timestamp
EXCEPTIONS
time_conversion_failed = 1
OTHERS = 2.
*或者使用下面語句:
CONVERT DATE sy-datum TIME sy-uzeit INTO TIME STAMP lv_timestamp TIME ZONE sy-zonlo.
12.時間戳轉日期和時間:
DATA: lv_timestamp LIKE tzonref-tstamps.
CALL FUNCTION 'CIF_GEN4_CONVERT_DATETIME'
EXPORTING
iv_date = sy-datum
iv_time = sy-uzeit
* IV_TIMEZONE = SY-ZONLO
IMPORTING
ev_timestamp = lv_timestamp
EXCEPTIONS
time_conversion_failed = 1
OTHERS = 2.
*或者使用下面語句:
CONVERT DATE sy-datum TIME sy-uzeit INTO TIME STAMP lv_timestamp TIME ZONE sy-zonlo.