Sha256: 7d108043ebe76685a4ca3ccbc74d151dfc0646a6ef1d09403bd96c007ff44190

Contents?: true

Size: 1.77 KB

Versions: 109

Compression:

Stored size: 1.77 KB

Contents

# Leap

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

The tricky thing here is that a leap year in the Gregorian calendar occurs:

```plain
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.

If your language provides a method in the standard library that does
this look-up, pretend it doesn't exist and implement it yourself.

## Notes

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][video].

[video]: http://www.youtube.com/watch?v=xX96xng7sAE

## Hints
Try to avoid code repetition, use private helper functions if you can.

And you might consider using a single `Boolean` expression instead of `if-else` for better readability. See [here](http://cs.wellesley.edu/~cs111/spring00/lectures/boolean-simplification.html) on how this could be done (the link is for Java, but of course the logic is valid for Scala, too).


The Scala exercises assume an SBT project scheme. The exercise solution source
should be placed within the exercise directory/src/main/scala. The exercise
unit tests can be found within the exercise directory/src/test/scala.

To run the tests simply run the command `sbt test` in the exercise directory.

For more detailed info about the Scala track see the [help
page](http://exercism.io/languages/scala).


## Source

JavaRanch Cattle Drive, exercise 3 [http://www.javaranch.com/leap.jsp](http://www.javaranch.com/leap.jsp)

## Submitting Incomplete Solutions
It's possible to submit an incomplete solution so you can see how others have completed the exercise.

Version data entries

109 entries across 109 versions & 1 rubygems

Version Path
trackler-2.2.1.104 tracks/scala/exercises/leap/README.md
trackler-2.2.1.103 tracks/scala/exercises/leap/README.md
trackler-2.2.1.102 tracks/scala/exercises/leap/README.md
trackler-2.2.1.101 tracks/scala/exercises/leap/README.md
trackler-2.2.1.100 tracks/scala/exercises/leap/README.md
trackler-2.2.1.99 tracks/scala/exercises/leap/README.md
trackler-2.2.1.98 tracks/scala/exercises/leap/README.md
trackler-2.2.1.97 tracks/scala/exercises/leap/README.md
trackler-2.2.1.96 tracks/scala/exercises/leap/README.md
trackler-2.2.1.95 tracks/scala/exercises/leap/README.md
trackler-2.2.1.94 tracks/scala/exercises/leap/README.md
trackler-2.2.1.93 tracks/scala/exercises/leap/README.md
trackler-2.2.1.92 tracks/scala/exercises/leap/README.md
trackler-2.2.1.91 tracks/scala/exercises/leap/README.md
trackler-2.2.1.90 tracks/scala/exercises/leap/README.md
trackler-2.2.1.89 tracks/scala/exercises/leap/README.md
trackler-2.2.1.88 tracks/scala/exercises/leap/README.md
trackler-2.2.1.87 tracks/scala/exercises/leap/README.md
trackler-2.2.1.86 tracks/scala/exercises/leap/README.md
trackler-2.2.1.85 tracks/scala/exercises/leap/README.md