日期时间 FUNCTION

*----------------------------
*时间差
*----------------------------
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.    "期间月份首尾日
--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值