python - 计算不包括开始日期的工作日,并使用 busday_count 包括结束日期
问题描述
有什么方法可以排除 StartDate 并包括 EndDate,我使用了 busday_count,这肯定包括开始日期和排除结束日期?
np.busday_count('2020-05-06', '2020-05-17')
out: 8 正确的应该是 7 因为第一天是星期三,我们不想计算它,下周到星期五计算在内
提前致谢
解决方案
排除第一天:
您可以将开始日期和结束日期都加 1:
>>> start = np.datetime64('2020-05-06')
>>> end = np.datetime64('2020-05-17')
>>> np.busday_count(start,end)
8
>>> np.busday_count(start+1,end+1)
7
第一个增量不包括开始日期,第二个增量包括计算中的结束日期。
排除第一个工作日:
>>> start = np.datetime64('2020-05-10')
>>> end = np.datetime64('2020-05-21')
>>> max(np.busday_count(start, end)-1+np.is_busday(end),0)
8
在这里,您减去一个,因为您总是想排除第一个工作日,如果结束也是一个工作日,则添加一个。最后,采用零最大值来避免没有工作日的情况,否则会给出 -1 作为结果。
推荐阅读
- react-native - 为什么我的动画 API 组件不会在 React Native 中显示?
- javascript - 需要帮助使用 VUE.JS JavaScript 解析导入的 json 数据
- node.js - Express error handling and process continuation
- d3.js - Libraries not working after implementing Webpack (SKD3)
- vbscript - Getting VBS script to use network share location
- javascript - 限制输入和文本区域中的坏词
- go - Memsql 抛出错误 MemSQL 不支持服务器端准备好的语句
- javascript - 重新发布/再次询问。Kartik 的 Yii2 引导滑块扩展中的更改事件
- python - 如何使用 python 烧瓶通过 GPS 获取我的当前位置?
- android - 只有创建视图层次结构的原始线程才能使用 Rxjava 接触其视图