计算两个日期之间的工作日
Posted ^ω^SAp傻X^o^
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算两个日期之间的工作日相关的知识,希望对你有一定的参考价值。
兰大顾的。。。
FUNCTION zget_workdays. *"---------------------------------------------------------------------- *"*"Local Interface: *" IMPORTING *" VALUE(I_DATE1) LIKE SY-DATUM *" VALUE(I_DATE2) LIKE SY-DATUM *" EXPORTING *" VALUE(E_DAYS) TYPE I *"---------------------------------------------------------------------- DATA: week1 TYPE scal-week, monday1 TYPE sy-datum, sunday1 TYPE sy-datum, week2 TYPE scal-week, monday2 TYPE sy-datum, sunday2 TYPE sy-datum, days1 TYPE i, days2 TYPE i, wotnr1 TYPE p, wotnr2 TYPE p. CHECK i_date2 GE i_date1. CALL FUNCTION ‘DAY_IN_WEEK‘ EXPORTING datum = i_date1 IMPORTING wotnr = wotnr1. CALL FUNCTION ‘DAY_IN_WEEK‘ EXPORTING datum = i_date2 IMPORTING wotnr = wotnr2. "计算开始日期所在周 CALL FUNCTION ‘GET_WEEK_INFO_BASED_ON_DATE‘ EXPORTING date = i_date1 IMPORTING week = week1 monday = monday1 sunday = sunday1. "计算结束日期所在周 CALL FUNCTION ‘GET_WEEK_INFO_BASED_ON_DATE‘ EXPORTING date = i_date2 IMPORTING week = week2 monday = monday2 sunday = sunday2. IF week1 EQ week2. IF wotnr1 GE 5. e_days = 0. EXIT. ELSE. IF wotnr2 LE 5. e_days = i_date2 - i_date1 . ELSEIF wotnr2 EQ 6. e_days = i_date2 - i_date1 - 1. ELSEIF wotnr2 EQ 7. e_days = i_date2 - i_date1 - 2. ENDIF. ENDIF. ELSE. IF wotnr1 gt 5. days1 = 0. ELSE. days1 = sunday1 - 2 - i_date1 + 1. ENDIF. IF wotnr2 GT 5 . days2 = 4. ELSE. days2 = i_date2 - monday2. ENDIF. e_days = ( week2 - week1 - 1 ) * 5 + days1 + days2. ENDIF. ENDFUNCTION.
以上是关于计算两个日期之间的工作日的主要内容,如果未能解决你的问题,请参考以下文章