#JavaScript (ES6) 27
The rule: (y%4==0) && (y%100!=0 || y%400==0)
Golfed: !(y%100<1&&y%400||y%4)
(maily using De Morgans's law)
A function implementing the rule:
l=y=>!(y%100<1&&y%400||y%4)
A test (run in Firefox) just to be sure:
l=y=>!(y%100<1&&y%400||y%4)
for(o=[],i=0;i<700;i++)
y=i+1800,
x=l(y),
o[i/100|0]=(o[i/100|0]||'')+y+' '+x+'\n'
R.innerHTML='<td>'+o.join('</td><td>')+'</td>'
console.log(o[1])
td { white-space: pre; font-family: monospace; padding: 8px}
<table>
<tr id=R></tr>
</table>