# your 0 == $year%4 && 0 == $year%100 || 0 == $year%400; # should be 0 == $year%4 && 0 != $year%100 || 0 == $year%400;