Tim,
This relies on the windows API. I like to use my own code where at all possible to make porting to other OS easier.
For data and time functions I use a library I have built over the years. The central functions for date work use Julian date. I have developed a very fast algo for converting gregorian date as a string, to julian date as a Long.
Once in julian format, calculating days is easy. the result is then converted back to gregorian format.
To do what you want, I would convert 1/1/08 to julian then loop with a step of 7 days. Converting the julian sum back would give you the gregorian date.
I could try to convert my code if that would help.