I think the problem is that your input is not in a SAS date format in which the numeric value represents the number of days since Jan 1, 1960. So each successive year is being interpreted as the next day rather than the next year.
To input the data correctly you need to use an informat.
Try using date = mdy (1,1,year); in your data step instead of date = year;
EDIT: In addition, to have the date display correctly, you will want to change your format statement to the following:
format date year4.;
... View more