Keep it simple and avoid any reference to SET DATEFIRST!
DECLARE@Year SMALLINT = 2011
;WITH cteCalendar(FirstOfMonth, LastOfMonth)
AS (
SELECTDATEADD(MONTH, 12 * @Year + number - 22801, 6) AS FirstOfMonth,
DATEADD(MONTH, 12 * @Year + number - 22800, -1) AS LastOfMonth
FROMmaster..spt_values
WHERETYPE = 'P'
AND number BETWEEN 1 AND 12
)
SELECTDATEADD(DAY, DATEDIFF(DAY, 6, FirstOfMonth) / 7 * 7, 6) AS FirstSunday,
DATEADD(DAY, DATEDIFF(DAY, 5, LastOfMonth) / 7 * 7, 5) AS LastSaturday
FROMcteCalendar
N 56°04'39.16"
E 12°55'05.25"