exercism-elixir/leap/lib/year.ex
2022-01-31 09:28:22 -04:00

15 lines
489 B
Elixir

defmodule Year do
@doc """
Returns whether 'year' is a leap year.
A leap year occurs:
on every year that is evenly divisible by 4
except every year that is evenly divisible by 100
unless the year is also evenly divisible by 400
"""
@spec leap_year?(non_neg_integer) :: boolean
def leap_year?(year) when rem(year, 4) != 0, do: false
def leap_year?(year) when rem(year, 400) == 0, do: true
def leap_year?(year), do: rem(year, 4) == 0 && rem(year, 100) != 0
end