I know this post is super-old, but I tried to do a similar thing and came up with a different solution, and decided that I would publish for posterity. Plus, I searched a bit and did not find much content on this.
In my case, I was trying to use a calculated PERSISTED column, which requires the calculation to be deterministic. The calculation we use:
datediff(dd,'2010-01-03',[DateColumn]) % 7 + 1
The idea is to find out the famous Sunday, which, as you know, will happen before any possible date in your table (in this case, January 3, 2010), then calculate modulo 7 + 1 the number of days from this Sunday.
The problem is that including a literal date in a function call is enough to mark it as non-deterministic. You can get around this by using the integer 0 to represent an era that for SQL Server is January 1, 1900, Sunday.
datediff(dd,0,[DateColumn]) % 7 + 1
+1 just makes the result work the same as datepart (dw, [datecolumn]) when datefirst is set to 7 (default for US), which sets Sunday to 1, Monday to 2, etc.
I can also use this in conjunction with case [thatComputedColumn], when 1, then โSundayโ, when 2, then โMondayโ ... etc. Wordier but deterministic, which was a requirement in my surroundings.