Duração entre dois DateTimes em minutos

Preciso determinar a duração entre dois DateTimes em minutos.

No entanto, há uma ligeira torção:

excluir fins de semanaconte apenas minutos entre as 7:00 e as 19:00. por exemplo:[09/30/2010 6:39:00 PM] - [09/30/2010 7:39:00 PM] = 21 Minutes

Estou tendo dificuldades para encontrar uma maneira decente de fazer isso e agradeceria se alguém pudesse sugerir algo.

Obrigado.

Editar:

Acabei indo com a solução da dtb. Há apenas um caso especial que precisa ser resolvido: se o horário de término for depois das 19h, conte os minutos das 7h até o horário real.

É assim que eu a modifiquei:

var minutes = from day in start.DaysInRangeUntil(end)
                where !day.IsWeekendDay()
                let st = Helpers.Max(day.AddHours(7), start)
                let en = (day.DayOfYear == end.DayOfYear ? 
                            end :
                            Helpers.Min(day.AddHours(19), end)
                            )
                select (en - st).TotalMinutes;

Mais uma vez, obrigado pela ajuda.

questionAnswers(9)

yourAnswerToTheQuestion