Excel自带的NETWORKDAYS函数不支持指定为工作日,故自己写个自定义函数

Function WorkdayCount(ByVal startDate As Date, ByVal endDate As Date, Optional holidays As Range = Nothing, Optional workDays As Range = Nothing)
'计算两个日期间的工作日天数,参数1为起始日,参数2为终止日,参数三为指定休息日所在单元格(可选参数),参数四为指定工作日所在的单元格(可选参数)Dim dictWorkday As Object, dictHoliday As Object, iCount&, rng As Range, date_ As Date'设置休息日字典Set dictHoliday = CreateObject("scripting.dictionary")If Not holidays Is Nothing Then  '如果指定了特定休息日则加入字典For Each rng In holidaysdictHoliday(rng.Value) = ""NextEnd If'设置工作日字典Set dictWorkday = CreateObject("scripting.dictionary")If Not workDays Is Nothing Then   '如果指定了特定工作日则加入字典For Each rng In workDaysdictWorkday(rng.Value) = ""NextEnd IfiCount = 0  '计数器初始值=0,可省略For date_ = startDate To endDate'如果为指定工作日则计数器+1。注意:如果指定工作日与指定休息日有重复值,会优先判断为工作日If dictWorkday.Exists(date_) TheniCount = iCount + 1ElseIf dictHoliday.Exists(date_) Then'跳过休息日,如需统计休息日可增加变量ElseIf Weekday(date_, vbMonday) < 6 Then iCount = iCount + 1End IfNextWorkdayCount = iCount  '返回计数器结果End Function

2021-07-20 计算两个日期间的工作日天数VBA函数相关推荐

  1. 记录一次计算两个日期间的工作日天数,排除节假日、周末等

    1.数据库存储节假日.补班日期 数据库结构如下,0代表节日,1代表补班日期,需要每年更新 2.代码 (1)计算相差天数 @Overridepublic Long getWorkDay(String s ...

  2. Python计算两个日期间的工作日(交易日),去除周末节假日

    首先区分一下这里的工作日和节假日是不同的. 工作日是指去掉节假日即周末,但是不去掉调休的日期. 交易日主要针对金融行业,是指去掉节假日和周末,因为周末金融市场也是停盘的,所以即使周末因为调休工作,也不 ...

  3. oracle计算两个日期间的工作日(根据表配置)

    首先新增表用于配置非工作日,工作日,具体配置在程序中处理 DROP TABLE "T_WEEKDAY"; CREATE TABLE "T_WEEKDAY" (& ...

  4. SQLServer 计算两个日期间的工作日(排除周六和周日,不排除节假日)

    CREATE FUNCTION GetWorkDays(@dt_begin DATETIME , --计算的开始日期@dt_end DATETIME --计算的结束日期) RETURNS INT AS ...

  5. SQL 如何得到两个日期间的工作日(附假期表)

    首先,我们有这样一张表 我们要知道两个日期间的工作日天数,相信大家有遇到过这个恶心人的需求,所谓工作日,不简简单单的就是除周六日以外的日子.要考虑到节假日,国庆啊,中秋啊,最让人头疼的是,你根本无法掌 ...

  6. LocalDate计算两个日期间距离

    1.LocalDate提供了until()方法,计算了两个日期之间的年.月和日的周期 例如: from {@code 2017-08-28} to {@code 2018-09-30} is &quo ...

  7. period_diff()函数不能用于计算两个日期间的天数

    period_diff()函数返回两个日期之间的月份数,不能用于计算两个日期间的天数,比如 SELECT PERIOD_DIFF(20200325,20200404) FROM DUAL; 结果是9, ...

  8. 计算两个日期间有多少个工作日

    function TmainForm.WorksDay( //计算两个日期间有多少个工作日 mStartDate: TDate; //开始日期 mEndDate: TDate //终止日期 ): In ...

  9. 计算两个日期间相隔了多少周

    计算两个日期间相隔多少周,只要个了周日就算一周 /** * 计算两个日期间相隔的周数 * * @param startDate * 开始日期 * @param endDate * 结束日期 * @re ...

  10. python获取两个日期间的工作日

    python获取两个日期间的工作日 import datetime # 计算两个日期之间的工作日数,非天数. class workDays():def __init__(self, start_dat ...

最新文章

  1. java怎么返回xml_java – 如何从Web服务返回XML
  2. Android 面试题目之 线程池
  3. selector + drawable 多状态图形
  4. 《实施Cisco统一通信管理器(CIPT1)》——2.2 CUCM:单站点部署模型
  5. javascript基础(第二天)
  6. 51单片机mysql_51单片机的定时器
  7. Unity3D学习笔记之四完善Prefab并添加First Person Controller
  8. 阿里云500服务器内部错误,腾讯云服务器网站不能打开 提示内部错误http 500
  9. android Notification分析—— 您可能会遇到各种问题
  10. Revealing图片展示效果(jQuery)
  11. Flume系列一之架构介绍和安装
  12. 当Android开发遇到魅族手机
  13. 3DText无法被物体遮挡 - 解决
  14. 关于html 背景图片的引用格式
  15. 电脑的所有浏览器打不开网页问题解决
  16. python中日期格式转换,计算单位天数时间差
  17. myEclipse8.5注册码
  18. 中华人民共和国个人信息保护法
  19. 淘宝电商api接口获取商品类目信息
  20. cms-详细页面-1

热门文章

  1. 力软敏捷开发框架7.0.6源码介绍
  2. cdr X6 64位32位缩略图补丁包
  3. Linux BT下载(7)-种子解析模块设计与实现1
  4. 微信H5支付功能开发
  5. ES6 推荐网络文档书籍
  6. 沧小海笔记之PCIE协议解析——第一章 PCIE概述(下)
  7. visio2016下载与安装
  8. vue 动态scss变量,包含16进制转rgba,rgba转16进制
  9. 慕课版软件质量保证与测试(第四章.课后作业)
  10. Python教学视频(六)关系及逻辑运算