<h2>T-SQL <s>166</s> 185 Characters</h2> CREATE PROCEDURE f29 (@d DATETIME) AS DECLARE @i int SET @i=YEAR(DATEADD(M,-2,@d)+3) SET @i=@i+(4-@i%4) IF @i%100=0 AND @i%400<>0 SET @i=@i+4 SELECT DATENAME(W,CAST(@i AS CHAR)+'-2-29') I was already messing with T-SQL date functions, so I figured why not... Original solution was incorrect... Here's what I *actually* have to do to get that strategy to work: CREATE PROCEDURE f29 (@d DATE) AS DECLARE @i int SET @i = YEAR(@d) BEGIN TRY SET @i=YEAR(DATEADD(D, 3, DATEADD(M,-2,@d))) END TRY BEGIN CATCH END CATCH SET @i=@i+(4-@i%4) IF @i%100=0 AND @i%400<>0 SET @i=@i+4 SELECT DATENAME(W,CAST(@i AS CHAR)+'-2-29')