Maria,
If the max date is always going to be the current year for what you are trying to do, you can always write a macro at the beginning to grab the current year to use in a comparison for deleting from your dataset.
%let numdate = %sysfunc(today(), date9.);
%let Max_year = %substr(&numdate,6,4);
%put todays date is &numdate;
%put max year is &Max_year;
Result from log:
461 %let numdate = %sysfunc(today(), date9.);
462 %let Max_year = %substr(&numdate,6,4);
463 %put todays date is &numdate;
todays date is 15APR2014
464 %put max year is &Max_year;
max year is 2014
Then the code you had comparing with the macro created should do the job.
data new;
set old;
if year = &Max_year then delete;
run;