I don't think setDate() does what you think it does. See http://www.w3schools.com/jsref/jsref_setdate.asp - it sets the day of the month. So you take a date that is currently in January, and then set the day of the month to 8 - it's going to now be 8 Jan.
Wait a couple of weeks and it will give you the result you expect .