Given a year, report if it is a leap year.

The tricky thing here is that a leap year in the Gregorian calendar 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

For example, 1997 is not a leap year, but 1996 is. 1900 is not a leap year, but 2000 is.


Though our exercise adopts some very simple rules, there is more to learn!

For a delightful, four minute explanation of the whole leap year phenomenon, go watch this youtube video.

The DateTime class in F# provides a built-in IsLeapYear method which you should pretend doesn't exist for the purposes of implementing this exercise.

Last updated 1 December 2021
Edit via GitHub The link opens in a new window or tab
F# Exercism

Ready to start Leap?

Sign up to Exercism to learn and master F# with 14 concepts, 132 exercises, and real human mentoring, all for free.