final
This commit is contained in:
parent
f5bf9477db
commit
460e456165
@ -9,7 +9,6 @@ public class Calculations
|
|||||||
TimeSpan endWorkingTime,
|
TimeSpan endWorkingTime,
|
||||||
int consultationTime)
|
int consultationTime)
|
||||||
{
|
{
|
||||||
// Список занятых интервалов
|
|
||||||
var busy = new List<(DateTime Start, DateTime End)>();
|
var busy = new List<(DateTime Start, DateTime End)>();
|
||||||
for (int i = 0; i < startTimes.Length; i++)
|
for (int i = 0; i < startTimes.Length; i++)
|
||||||
{
|
{
|
||||||
@ -18,11 +17,9 @@ public class Calculations
|
|||||||
busy.Add((start, end));
|
busy.Add((start, end));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Рабочее время
|
|
||||||
var workStart = DateTime.Today.Add(beginWorkingTime);
|
var workStart = DateTime.Today.Add(beginWorkingTime);
|
||||||
var workEnd = DateTime.Today.Add(endWorkingTime);
|
var workEnd = DateTime.Today.Add(endWorkingTime);
|
||||||
|
|
||||||
// Разбиваем на слоты
|
|
||||||
var result = new List<string>();
|
var result = new List<string>();
|
||||||
var current = workStart;
|
var current = workStart;
|
||||||
|
|
||||||
@ -31,7 +28,7 @@ public class Calculations
|
|||||||
var slotEnd = current.AddMinutes(consultationTime);
|
var slotEnd = current.AddMinutes(consultationTime);
|
||||||
|
|
||||||
bool isOverlapping = busy.Any(b =>
|
bool isOverlapping = busy.Any(b =>
|
||||||
current < b.End && slotEnd > b.Start // перекрытие
|
current < b.End && slotEnd > b.Start
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!isOverlapping)
|
if (!isOverlapping)
|
||||||
@ -39,7 +36,7 @@ public class Calculations
|
|||||||
result.Add($"{current:HH:mm}-{slotEnd:HH:mm}");
|
result.Add($"{current:HH:mm}-{slotEnd:HH:mm}");
|
||||||
}
|
}
|
||||||
|
|
||||||
current = slotEnd; // шаг по времени строго по длительности
|
current = slotEnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
return result.ToArray();
|
return result.ToArray();
|
||||||
|
Loading…
Reference in New Issue
Block a user