У меня есть немного сложная функция диапазона дат, в которой я нуждаюсь.Запрос LINQ для диапазона дат?
В расписании есть 2 вещи ... дата начала и часы.
Дата окончания можно вычислить, выполнив:
ResolveEndDate(DateTime start, double hours)
{
int days = (int)Math.Floor(hours/GetDayHours());
DateTime dt = start.AddDays(days);
}
Это происходит потому, что рабочий день имеет N часов и так далее.
Исходя из этого, мне нужно найти проекты, которые:
- Start до диапазона и в конце после
- Start до и заканчиваться в пределах
- Start внутри и заканчиваться в пределах
- Start внутри и конец после
Как я могу написать запрос LINQ для этого?
Учитывая то вроде этого:
public static IEnumerable<Project> GetProjectRange(IEnumerable<Project> projects, DateTime start, DateTime end)
{
return from p in projects
where p.Schedule.DateFrom.Value...
select p;
}
Другая сложная вещь только месяц день и год должны быть рассмотрены. Время не следует рассматривать.
1 запрос, который удовлетворяет всем 4 условиям.
У меня нет проблем с написанием этого запроса, но, как я бы это сделал, это был бы огромный беспорядок. Я надеюсь, что есть лучший способ делать диапазоны дат.
Thanks
Вы имеете в виду любой из этих 4 критериев или запрос по каждому критерию? Не являются ли первые и четвертые критерии одинаковыми? –
Извините, это была ошибка. Кроме того, 1 запрос, который удовлетворяет всем 4. – jmasterx
Буду честным, это безумие. в этих условиях ... его КАЖДЫЙ проект. Нет? Вы хотите, чтобы они отсортировались по условию? –