Julia, 3030 28 bytes
y->!(y%4<1)&y%100<1|!(y%400<1y%4<1&&y%100>0)||y%400<1
This creates an unnamed function that accepts an integer argument and returns a boolean value. To call it, give it a name, e.g. f=y->...
.
Ungolfed:
function f(y)
!(y % 4 == 0) &&& y % 100 ==!= 0) ||| !(y % 400 == 0)
end
ExamplesExample:
julia> for y in [1936, 1805, 1900, 2272, 2400] println(f(1936y)) end
true
julia> f(1805)false
false
true
true
true