Except for every 400th year.
leap = function(x) {
if ((x % 4) != 0) {
return 0;
}
return Number(
(x % 100) != 0 || (x % 400) == 0
);
}
function(x) { return 28 + leap(x) + (...) };