- Сначала найдите нижнюю и верхнюю границы пересечения
- Нижняя граница пересечения ( 
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 )`
«+1» в подсчетах дней необходим или не зависит от того, что вы подразумеваете под "между" или "внутри", включая границы или нет. Есть три случая, очевидно.
+1 - в диапазоне (включая границы)  
+0 - от начальной даты до конечной даты 
-1 - между этими датами, но не включительно