Мне нужно взять период времени , например в неделю и разбить на дни, а затем на часы, 30 минут, 15 минут и т. д.
Затем я хочу иметь возможность назначать (возможно, нескольких) людей на эти промежутки времени.
напр.
30 мая 2012 г.
07:00 : 07:30 - Алиса, Боб
07:30 : 08:00 - Алиса
.... : ....
19:30 : 2000 - Алиса
31 мая 2012 г.
07:00 : 07:30 - Кэрол
07:30 : 08:00 - Кэрол
.... : ....
1930 : 2000 - Кэрол
Где время начала и время окончания каждого дня настраиваются .
Мне нужно иметь возможность сортировать рабочие периоды и запрашивать их, чтобы увидеть, не назначено ли им какое-либо лицо. Проверьте день/неделю, на которые ни один человек не назначен > x часов.
Я знаю, что в .Net есть TimeSpan и DateTime, но они кажутся громоздкими в использовании для того, что кажется простым представлением некоторых данных, а TimeSpan не имеет StartTime, это всего лишь промежуток времени (например, 30 минут, 5 минут, 1 час и др.).
Первоначально я имел в виду создать класс с именем WorkingDay, у рабочего дня может быть несколько рабочих периодов. Рабочий период имеет StartTime и EndTime, а также список людей, назначенных этому рабочему периоду, с простыми методами AddPerson и RemovePerson.
В WorkDay будет функция для получения списка людей, назначенных на этот день, путем запуска рабочих периодов и извлечения всех уникальных людей, назначенных на любой период. У него также будет функция, которая извлекает все рабочие периоды, которым никто не назначен.
Однако это кажется слишком громоздким! Тем более, что мне понадобится что-то еще, что займет несколько рабочих дней и проверит, что общее время, назначенное кому-либо на несколько дней, меньше x часов и т. д.
Есть предложения по хорошей структуре для этого? Является ли их существующей структурой .Net, которая предоставит то, что мне не хватает?