- 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>IUIL=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