Ошибка, которую вы получаете, находится на линии, где вы пытаетесь преобразовать TimeSpan
в десятичную.Вместо этого вы должны преобразовать TotalHours
из TimeSpan
:
fullBreakTime = totalBreak + Convert.ToDecimal(difference.TotalHours);
Но из вашего комментария
Я пытаюсь вычесть общее время перерыва из общей разницы,Например, если кто-то работал 8 часов в день и имел 1-часовой перерыв, это было бы в общей сложности 7
, вы можете просто рассчитать общее количество отработанных часов и затем вычесть время перерыва (примечание I 'я работаю с double
вместо decimal
здесь, поскольку именно это TimeSpan
использует для TotalHours
):
double hoursLogged = (c - b).TotalHours; // or (b-c).Duration().TotalHours()
double totalBreak = f + d;
double hoursWorked = hoursLogged - totalBreak;