I don't quite understand what you're saying. As an example, to calculate the number of Mondays in the year 2000, do as follows:
select (datediff(d, '20060213', '20001231') + 1)/7 - datediff(d, '20060213', '20000101')/7
Could you give an example where my method returns something wrong?