I like things simple for debugging purposes... LINQ implies a list or some iterable thing, but that's just me. I think this works:
static int CountDayOcurrence(DateTime start, DateTime end, DayOfWeek day)
{
var wstart = start.AddDays(7 - (int) start.DayOfWeek);
var wend = end.AddDays(-(int)end.DayOfWeek);
var ocurrences = (wend - wstart).Days / 7;
if (start.DayOfWeek <= day)
ocurrences++;
if (end.DayOfWeek >= day)
ocurrences++;
return ocurrences;
}