Date calculation in AppleScript. Week numbers and their start date
Thanks to @ryan-m's comment I found a solution. Turns out date(1) is actually really cool. Its ability to do "adjustments" were the answer. 

You can tell date to simply "go to" a specific day by using -v. You can then use plus and minus to "adjust" that date in another -v. So for instance:

date -v 1w -v 16y


Will go to the first month of 2016. (Or a date that contains that date)

With an adjustment we can walk through dates:

date -v +1w -v +0d -v 16y
date -v +1w -v +6d -v 16y


This goes to the first week of 2016. The second command goes from the beginning of that first week 6 days ahead. This is the 10th of January 2016. -v +2w would be the second week, and so forth. It's apparent which part can be automated here.    

Everything that +'string' at the end does is it formats the date you're at in the way you want it displayed. I use this in my script to make a date-string that AppleScript's date command understands. Please don't confuse the shell command date(1) with the AppleScript date command.

This is the script I ended up with, by the way:

repeat with weekNumber from 1 to 52
    set weekStartShell to (do shell script "date -v +" &amp; weekNumber &amp; "w -v +0d -v 16y +'%d. %m. %Y'")
    set weekStart to date weekStartShell
    set weekEndShell to do shell script "date -v +" &amp; weekNumber &amp; "w -v +6d -v 16y +'%d. %m. %Y'"
    set weekEnd to date (weekEndShell &amp; " 23:59:59")
    set projectName to (("CW" &amp; weekNumber &amp; ": " &amp; weekStartShell &amp; " - " &amp; weekEndShell) as string)

    tell application "OmniFocus"
        tell folder "Day Projects" of default document
            set projectWeek to make new project with properties {name:projectName, defer date:weekStart, due date:weekEnd, singleton action holder:true}

        end tell
    end tell

end repeat


Note that in order to use AppleScript's set var to date "date-string" you have to give it a string in your locale. In Europe the string is 01. 02. 2016 23:59:59. In America this probably is something like 2016/02/01 23:59:59. You need to modify these in the variables in the script. (+'%Y/%m/%d' at the end)