天天看点

abap获取日期_ABAP 日期函数

一 财务期间处理 T_CODE: OB29

**取 公司年度变式, 和 货币

SELECT SINGLE waers periv FROM t001

INTO (v_waers,v_periv)

WHERE bukrs = 'HL01'.

**取当前日期所在的财务期间年月

CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'

EXPORTING

i_date  = sy-datum

i_periv = v_periv

IMPORTING

e_buper = p_emonth

e_gjahr = p_gjahr.

** 根据会计期间得到月初日期

CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'

EXPORTING

i_gjahr              = p_gjahr

i_periv              = v_periv

i_poper              = p_emonth

IMPORTING

e_date               = v_fr_date

EXCEPTIONS

input_false          = 1

t009_notfound        = 2

t009b_notfound       = 3

OTHERS               = 4

.

***根据会计期间得到月末日期

CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'                 "取本月最后一天

EXPORTING

i_gjahr = p_gjahr                                     "会计年度

i_periv = v_periv                                     "会计年度变式K4

i_poper = p_emonth                                    "期间(3位N)''

IMPORTING

e_date  = v_to_date.

二 工厂日历处理

DATA:dat LIKE sy-datum.

**jhzqmax 是最大间隔日期

dat = sy-datum .

WHILE i <= jhzqmax.

i = i + 1 .

dat =   dat  +  1.

*--------------工厂日历的日期---------------------

CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'

EXPORTING

date                = dat

factory_calendar_id = 'CN'

IMPORTING

date                = dat.

ENDWHILE.

**dat 的结果是推算出 当前日日期dat隔jhzqmax个工作日后的日期。

三 普通日期处理

日期 加减

CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

EXPORTING

DATE            = in_date

DAYS            = 5

MONTHS          = 0

SIGNUM          = '+'

YEARS           = 0

IMPORTING

CALC_DATE       = out_date

四 ,日期函数汇总

SCA1                           日期:转换

这个函数组里主要是一些转换例程,平时大概用到的机会不多。

BUFFER_CONTROL_SCA1

CONVERSION_EXIT_IDATE_INPUT    External date INPUT conversion exit (e.g. 01JAN1994)

CONVERSION_EXIT_IDATE_OUTPUT   External date OUTPUT conversion exit (e.g. 01JAN1994)

CONVERSION_EXIT_LDATE_OUTPUT   Internal date OUTPUT conversion exit (e.g. YYYYMMDD)

CONVERSION_EXIT_SDATE_INPUT    External date (e.g. 01.JAN.1994) INPUT conversion exit

CONVERSION_EXIT_SDATE_OUTPUT   Internal date OUTPUT conversion exit (e.g. YYYYMMDD)

CONVERT_DATE_TO_EXTERNAL       Conversion: Internal to external date (like screen conversion)

CONVERT_DATE_TO_INTERNAL       Conversion: External to internal date (like screen conversion)

CONV_EXIT_LDATE_OUTPUT_LANGU   Internal date OUTPUT conversion exit (e.g. YYYYMMDD)

SCA2                           日历:附加功能

CALENDAR_VISUAL_INFORMATION

CALENDAR_VISUAL_INFORMATION_2

CALENDAR_VISUAL_NEW_SELECTION

CALENDAR_VISUAL_PRESENTATION   visual calendar display (like calendar page)(这个函数可以显示一个带有工具栏的 LIST 形式的日历,当作弹出窗口应该不错。)

CALENDAR_VISUAL_PRESENTATION_2

SCA3                           日历:弹出

POPUP_TO_SELECT_MONTH          Popup to choose a month(弹出一个选择年度和月份的对话框,返回选择的年月,选择范围为指定年度的前后50年)

SCA4                           日历:时间(日期/时间)

DURATION_DETERMINE             Calendar: Determine duration between two times

END_TIME_DETERMINE             Calendar: Determine end date and time

START_TIME_DETERMINE           Calendar: Determine start date and time

SCA5                           Calendar: Additional functions

这个函数组中的函数作用应该比较丰富

DAY_ATTRIBUTES_GET(获得日期的属性)

DAY_NAMES_GET(获得一周内每天的特定语言的名称)

FACTORY_CALENDAR_ATTRIBUTE_GET Calendar: Get Factory Calendar Attributes (Table TFACD)

FACTORY_CALENDAR_GET(获得所有工厂日历)

HOLIDAY_CALENDAR_GET(获得所有假期日历)

HOLIDAY_GET(查询某个指定工厂日历、假期日历下,两个日期间的所有假日。)

MONTH_NAMES_GET(获得每个月的特定语言的名称)

SCA6                           Periodic appointments

PERIOD_DIALOG(显示一个期间选择的对话框,其中第一个参数,处理模式有下列可能值:‘I’,插入;‘D’,删除;‘U’,更新指定日期;‘A’,更新全部日期;‘S’,显示。)

PERIOD_DISPLAY_DATES           Display Appointments of a Periodic Appointment

WEEKDAY_GET                    Calendar: Get day of the week

WEEKNR_GET                     Calendar: Fetch Week Number

SCAC                           Calendar: Controls

F4_DATE_CONTROL                Display factory calendar or Gregor. calendar and choose a day(这就是我们经常看到的标准 F4 日期选择的弹出窗口。)

SCAL                           日历功能

DATE_COMPUTE_DAY               根据日期返回的星期值

DATE_COMPUTE_DAY_ENHANCED

DATE_CONVERT_TO_FACTORYDATE    根据日期返回工厂日历日期

DATE_GET_WEEK                  返回某日期所在的礼拜

EASTER_GET_DATE                返回一个年度的复活节日期(复活节,复活节星期日)

FACTORYDATE_CONVERT_TO_DATE    根据一个工厂日历日期返回的日期

HOLIDAY_CHECK_AND_GET_INFO     检查日期是否是公共假日并在需要时提供信息

LAST_FACTORYDATE_GET           Calendar function: Return last factory date for a factory calendar

WEEK_GET_FIRST_DAY             返回一周的第一天