Is it easier to start from the next targeted day? Subtract that date from the end date. If the result is negative, return 0 otherwise return the quotient of the difference in days between the two dates divided by 7 plus 1.
public static int findWeekCount(DateTime startDate, DateTime toDate, DayOfWeek dayOfWeek)
{
DateTime firstTargetDate = startDate+ TimeSpan.FromDays(7 + (int)dayOfWeek - ((int)startDate.DayOfWeek) % 7);
return (toDate - firstTargetDate).Days < 0 ? 0 : (((toDate - firstTargetDate).Days) / 7) + 1 ;
}