Я надеюсь, что кто-то может помочь мне с оптимальным решением для этого. У меня есть список журналов времени. Он содержит запись данных для каждого часа на одного сотрудника в день.Расчет часов часов сотрудников
Я пытаюсь найти хорошее решение для расчета времени работы в день. Время, прошедшее между каждым часовым механизмом и тайм-аутом для одного сотрудника.
Окончательный результат должен дать мне следующее.
- Общее время работал
- Общее тайм-аут
- Время, прошедшее между каждой строке журнала/извлекать и показывать время работал и тайм-аут.
Например ClockIn: 6:00 ClockedOut: 10:00 ClockedIn: 10:15
Breaktime = 00:15
и так далее.
Я стараюсь избегать использования для многих циклов цикла/foreach.
Это образец кода, представляющий список журналов времени. Тип есть. I = для Clock-In и O = Clock-Out. Каждый сдвиг имеет время начала блокировки и время окончания блока.
var blockStart = new TimeSpan(0,6,0,0,0);
var blockEnd = new TimeSpan(0,17,0,0);
var listOfTimeLogs = new List<TimeLog>()
{
new TimeLog() {EntryDateTime = new DateTime(2016,05,20,6,0,0),Type = "I"},
new TimeLog() {EntryDateTime = new DateTime(2016,05,20,10,0,0),Type = "O"},
new TimeLog() {EntryDateTime = new DateTime(2016,05,20,10,15,0),Type = "I"},
new TimeLog() {EntryDateTime = new DateTime(2016,05,20,12,0,0),Type = "O"},
new TimeLog() {EntryDateTime = new DateTime(2016,05,20,12,30,0),Type = "I"},
new TimeLog() {EntryDateTime = new DateTime(2016,05,20,15,0,0),Type = "O"},
new TimeLog() {EntryDateTime = new DateTime(2016,05,20,15,15,0),Type = "I"},
new TimeLog() {EntryDateTime = new DateTime(2016,05,20,18,00,0),Type = "O"}
};
Надеюсь, что это имеет смысл. любая помощь будет оценена. Thank you
порога вы застряли? Если всегда есть i, o, i, o ... pattern, вы можете сделать это за один проход. Дайте в результате, что вы ожидаете от этого ввода. –