if you want to have different day as start of the week, e.g. Monday: set datefirst 1
the select statement with dateadd/datepart stays the same
Don't think calculating a date based on just a week number is possible.
Different years have different dates for week numbers. And don't forget leap years.
you can still loop on week numbers, but do all calculations on a full date
next week: select dateadd(dw, 1, @curr_date_time)