Мне нужно взять период времени, например. в течение недели, а затем дальше вниз в часы, 30 минут, 15 минут и т. д.Наиболее эффективный способ представления периодов времени
Затем я хочу иметь возможность назначать (возможно, несколько) людей для этих временных интервалов.
например.
30 мая 2012
0700: 0730 - Алиса, Боб
0730: 0800 - Алиса
....: ....
1930: 2000 - Алиса
31 мая 2012 года
0700: 0730 - Carol
0730: 0800 - Carol
....: ....
1930: 2000 - Carol
Где время начала и время окончания каждого дня можно настроить.
Мне нужно уметь сортировать рабочие периоды и запрашивать их, чтобы узнать, нет ли у них назначенного им лица. Проверьте день/неделю, на которые никто не назначается на> х часов.
Я знаю .Net имеет TimeSpan и DateTime, но они кажутся громоздкими для использования, поскольку это похоже на простое представление некоторых данных, а TimeSpan не имеет StartTime, это всего лишь промежуток времени (например, 30 минут, 5 минут , 1 час и т. Д.).
Первоначально я имел в виду создание класса WorkingDay, у WorkDay может быть несколько рабочих элементов. WorkPeriod имеет StartTime и EndTime и список людей, назначенных этому WorkingPeriod, с помощью простых методов для AddPerson и RemovePerson.
WorkingDay будет иметь функцию, чтобы получить список людей, назначенных на этот день, запустив WorkPeriods и вытащив всех уникальных людей, которые назначены на любой период. Он также будет иметь функцию, которая вытаскивает все рабочие элементы с назначенным пользователем.
Это кажется слишком громоздким, хотя! Тем более, что мне понадобится еще что-то, что занимает несколько рабочих дней и проверяет, что общее время, которое кто-то назначает за несколько дней, меньше, чем х часов и т. Д.
Любые предложения по хорошей структуре для этого? Является ли их существующей структурой .Net, которая обеспечит это, чего я не хватает?
Вы даже можете поместить это в struct/class и определить некоторые операторы на нем. – fero
@fero - Да, конечно. Подобно 'DateTime EndTime {get {return Start + Duration; }} ' –