If the day and month are 1 it will never cover out 1st if the year. You've already accounted for this in the month execution above. Test it out. Set the date back.