Нам нужна ночная формула из 2 дат.Предполагается, что это логическая функция, которая получает 2 даты (разница во времени не более 12 часов) и проверяет ночные часы, ночные часы устанавливаются с 00:00 до 6:00 утра. Функция работает в следующих случаях:
1/1/18 20:00 - 2/1/18 7:00 true
2 /1/18 1:00 - 2/1/18 7:00 true
2/1/18 1:00 - 2/1/18 5:15 true
1/1/18 20:00 - 1/1/18 23:00false
1/1/18 20:00 - 2/1/18 3:30 true
моя работа (работает не во всех случаях)
private bool CheckNightHours(DateTime start, DateTime end)
{
var nightStart = new DateTime(start.Year, start.Month, start.Day ,0 ,0, 0);// 00:00;
var nightEnd = new DateTime(end.Year, end.Month, end.Day, 6, 0, 0); // 6:00;
bool result = false;
if (end < nightStart)
return false;
else {
if (start > nightStart && end > nightStart)
result = false;
else
if ((end >= nightEnd) || (end > nightStart && end < nightEnd))
result = true;
else
return result;
}
}