I am assuming by week you mean the week in the month, not the week in the year.
So for example, week 1 in October 2013 has 6 days and week 5 in October 2013 has 4 days.
If that is the case then something like this might work for you;
declare @year int
declare @month int
declare @week int
declare @target datetime
declare @firstDay int
declare @startOfMonth datetime
declare @endOfMonth datetime
declare @startOfMonthsFirstWeek datetime
declare @startOfWeek datetime
declare @endOfWeek datetime
declare @start datetime
declare @end datetime
-- These three are the input
set @year=2013
set @month=10
set @week=5
set @startOfMonth=cast(cast(@year as varchar) + '-' + cast(@month as varchar) + '-1' as datetime)
set @endOfMonth=dateadd(day, -1, cast(cast(@year as varchar) + '-' + cast(@month + 1 as varchar) + '-1' as datetime))
set @startOfMonthsFirstWeek = case datepart(weekday, @startOfMonth) when 1 then @startOfMonth else dateadd(day, 2 -datepart(weekday, @startOfMonth), @startOfMonth) end
set @startOfWeek = dateadd(day, 7 * (@week - 1), @startOfMonthsFirstWeek)
set @endOfWeek = dateadd(day, 7 * @week - 1, @startOfMonthsFirstWeek)
select @start = max([Date]) from (select @startOfMonth as [Date] union (select @startOfWeek as [Date])) as [Start]
select @end = min([Date]) from (select @endOfWeek as [Date] union (select @endOfMonth as [Date])) as [End]
declare @numberOfDaysInMonthWeek int
set @numberOfDaysInMonthWeek = 1 + datediff(day, @start, @end)
select @numberOfDaysInMonthWeek as [NumberOfDaysInWeekOfMonth]
Hope this helps,
Fredrik