In reply to Mark Jones.

Interesting! I'll need to check this. According to this, there is a proposal to exclude years divisible by 4,000 -- maybe SAS is an early adopter.

Here's a quick test for 100-year leap years:

data leap_years(keep=year);
length date 8;
do year=2000 to 4400 by 100;
/* MISSING when Feb 29 not a valid date */
date=mdy(2,29,year);
if not missing(date) then
output;
end;
run;