js 获取法定节假日_获取两个日期间多少个工作日

有时候会遇到需求查两个日期直接多少个工作日。

这里面除了周六日还涉及到法定节假日和调休等情况。

这些情况都是需要在工厂日历里维护的。

使用下面代码的前台是,工厂日历已经正确维护。

a86d2ce5cfb01f36158defb7586f5039.png

或者直接使用维护工厂日历 tcode:SCAL

143dca8d06906cd40192988da4da6272.png

具体维护过程自己上网一搜即可,这里不再赘述、

获取日期间工作日天数:

e8c5d3ff33e51696600716b7b275e3f9.png

FUNCTION ZMM_GET_WORKDAYS.*"----------------------------------------------------------------------*"*"Local Interface:*"  IMPORTING*"     REFERENCE(IV_FROM) TYPE  SY-DATUM DEFAULT SY-DATUM*"     REFERENCE(IV_TO) TYPE  SY-DATUM DEFAULT SY-DATUM*"     REFERENCE(IV_FACTORY_CALENDAR) LIKE  SCAL-FCALID DEFAULT 'CN'*"     REFERENCE(IV_HOLIDAY_CALENDAR) LIKE  SCAL-HCALID DEFAULT 'CN'*"     REFERENCE(IV_NC_TODAY) TYPE  FLAG DEFAULT 'X'*"  EXPORTING*"     REFERENCE(EV_DAYS) TYPE  INT4*"----------------------------------------------------------------------DATA:LT_DAY_ATTRIBUTES  TYPE TABLE OF  CASDAYATTR.DATA:LS_DAY_ATTRIBUTES  TYPE           CASDAYATTR.CALL FUNCTION 'DAY_ATTRIBUTES_GET'EXPORTING
      FACTORY_CALENDAR           = IV_FACTORY_CALENDAR
      HOLIDAY_CALENDAR           = IV_HOLIDAY_CALENDAR
      DATE_FROM                         = IV_FROM
      DATE_TO                              = IV_TOTABLES
      DAY_ATTRIBUTES               = LT_DAY_ATTRIBUTESEXCEPTIONS
      FACTORY_CALENDAR_NOT_FOUND = 1
      HOLIDAY_CALENDAR_NOT_FOUND = 2
      DATE_HAS_INVALID_FORMAT    = 3
      DATE_INCONSISTENCY         = 4OTHERS                     = 5.IF SY-SUBRC <> 0.ENDIF.*&除去节假日DELETE LT_DAY_ATTRIBUTES WHERE FREEDAY = 'X'.DESCRIBE TABLE LT_DAY_ATTRIBUTES LINES EV_DAYS.IF IV_NC_TODAY = 'X'."如果to date 是工作日除去 当天READ TABLE LT_DAY_ATTRIBUTES TRANSPORTING NO FIELDSWITH KEY DATE = IV_TO.IF SY-SUBRC = 0.
      EV_DAYS = EV_DAYS - 1.ENDIF.ENDIF.ENDFUNCTION. 

02974bfca5920cf7d6e5c2937ff79e4a.png

cf05ff8a8bc90c6963ca09fcab29cb66.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值