- Primeiro, encontre os limites inferior e superior da interseção
- O limite inferior da interseção (
IL
) é o mais alto demin([a;b])
emin([c;d])
; - O limite superior da interseção (
IU
) é o menor demax([a;b])
emax([c;d])
;
- O limite inferior da interseção (
-
Em seguida, conte os dias no intervalo
[IL;IU]
, supondo que seja zero seIL>IU
IL=max( min(a,b) , min(c,d) ) IU=min( max(a,b) , max(c,d) ) DAYSCOUNT= min( 0, IU-IL+1)'
Após a substituição, recebemos
min( 0, min(max(a,b), max(c,d)) - max(min(a,b), min(c,d)) + 1 )'
"+ 1" na contagem de dias é dependente ou não depende do que você quer dizer sob "entre" ou "dentro", incluir limites ou não. há três casos, obviamente.
-
+1
- no intervalo (inclua os limites) -
+0
- da data de início até a data de término -
-1
- entre essas datas, mas não inclui