Должен быть простой ответ:
var totalTime = TimeSpan.Zero;
foreach (var timesheet in timeSheets)
{
//assume "time" is a correct, positive TimeSpan
var time = timesheet.EndTime - timesheet.StartTime;
totalTime.Add(time);
}
В списке есть только одно значение timeSheets
, и оно является положительным TimeSpan
(проверено при локальной инспекции).