例如:
A1 = 2004/8/5
B1 = 2004/12/29
C1 = 2003/1/1
D1 = 2004/11/21
我想计算出 A 和 B 之间有多少天位于 C 和 D 之间。我不知道该用什么公式来计算。有人能帮忙吗?
答案1
- 首先找到交点的下限和上限
- 交点()的下界
IL
是min([a;b])
和的最高值min([c;d])
; IU
交点( )的上界是max([a;b])
和的最低点max([c;d])
;
- 交点()的下界
然后计算范围内的天数
[IL;IU]
,假设如果IL>IU
IL=max( min(a,b) , min(c,d) ) IU=min( max(a,b) , max(c,d) ) DAYSCOUNT= min( 0, IU-IL+1)`
代入后我们得到
min( 0, min(max(a,b), max(c,d)) - max(min(a,b), min(c,d)) + 1 )`
dayscount 中的“+1”是否需要取决于“之间”或“之内”的含义,是否包括界限。显然有三种情况。
+1
- 在范围内(包括边界)+0
- 从开始日期到结束日期-1
- 介于上述日期之间,但不包括