И ответ на задачку от её автора, Алексея:
Приведу пример оптимального метода расчета для самого простого варианта.
Дано. 2 временных интервала, заданные началами и концами.
start1 - finish1 и start2 - finish2. Найти начало и конец пересечения интервалов, обозначим их как begin и end.
При условии: start1 < finish1 и start2 < finish2
begin = max (start1; start2)
end = min (finish1; finish2)
На примерах с иллюстрации.
1. start1 = 6; finish1 = 18
start2 = 9; finish2 = 15
begin = max (6; 9) = 9
end = min (18; 15) = 15
2. start1 = 6; finish1 = 18
start2 = 3; finish2 = 15
begin = max (6; 3) = 6
end = min (18; 15) = 15
3. start1 = 6; finish1 = 18
start2 = 9; finish2 = 21
begin = max (6; 9) = 9
end = min (18; 21) = 18
