计算不包括开始日期的工作日,并将结束日期包括在工作日计数中

2024-04-19 09:08:01 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法排除StartDate和EndDate,我使用了busday_计数,这肯定包括开始和排除结束日期

np.busday_count('2020-05-06', '2020-05-17')

出局:8的正确出局应该是7,因为第一天是星期三,我们不想把它算在内,下周到星期五算在内

提前谢谢


Tags: countnp计数办法出局startdateenddatebusday
1条回答
网友
1楼 · 发布于 2024-04-19 09:08:01

要排除第一天,请执行以下操作:

您可以将开始日期和结束日期都增加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,因为您总是希望排除第一个工作日,如果结束也是一个工作日,则添加1。最后,取一个带零的max,以避免没有工作日的情况,否则结果会是-1

相关问题 更多 >