通过 ADO 连接到 Jet 数据库时,有没有办法复制 Excel 的 NETWORKDAYS?
答案1
首先假设我们知道开始和结束都是工作日,那么我认为这是可行的:
([DateEnd]-([DateStart]+(Weekday([DateEnd])-Weekday([DateStart]))))/7*5+(Weekday([DateEnd])-Weekday([DateStart]))+1
- 计算出日期和时间之间的周数,乘以 5。
- 添加星期几的差异
- 添加一个以包含开始和结束
如果你不知道这两个都是工作日,那么你需要更正一下。我认为这是正确的:
([DateEnd]-([DateStart]+(Weekday([DateEnd])-Weekday([DateStart]))))/7*5+(Weekday([DateEnd])-Weekday([DateStart]))+1+IIf(Weekday([DateEnd])=7,-1,0)+IIf(Weekday([DateStart])=1,-1,0)
我用 Excel 测试了一下,似乎给出了正确的答案
答案2
还有此功能。从算法上讲,它与@JDunkerley 的算法几乎相同 - 只是更冗长。可能更容易在不同的环境中实现。