• The code to find the first Monday of the year is fairly simple:

    First find the 7th day of the year (Jan 7):

    dateadd(yy,datediff(yy,0,a.DT),6)and then find the Monday on or before that date:

    dateadd(dd,(datediff(dd,0, JanuarySeventh )/7)*7,0)

    Does not depend on any setting of language or datefirst.

    select

    DT,

    FirstMonday =

    dateadd(dd,(datediff(dd,0,dateadd(yy,datediff(yy,0,a.DT),6))/7)*7,0)

    from

    ( -- Test Data

    select DT = getdate()union all

    select DT = '20111231'union all

    select DT = '20121231'union all

    select DT = '20131231'union all

    select DT = '20141231'union all

    select DT = '20110101'union all

    select DT = '20080229'

    ) a

    Results:

    DT FirstMonday

    ------------------------ -----------------------

    2011-08-19 14:42:26.310 2011-01-03 00:00:00.000

    2011-12-31 00:00:00.000 2011-01-03 00:00:00.000

    2012-12-31 00:00:00.000 2012-01-02 00:00:00.000

    2013-12-31 00:00:00.000 2013-01-07 00:00:00.000

    2014-12-31 00:00:00.000 2014-01-06 00:00:00.000

    2011-01-01 00:00:00.000 2011-01-03 00:00:00.000

    2008-02-29 00:00:00.000 2008-01-07 00:00:00.000