Самый эффективный способ представления периодов времени

Мне нужно взять период времени , например в неделю и разбить на дни, а затем на часы, 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, которая предоставит то, что мне не хватает?

5
задан user476683 30 May 2012 в 12:22
поделиться