# Kotlin Program to Check Leap Year

In this program, you’ll learn to check if the given year is a leap year or not in Kotlin. This is checked using a if else statement and a when statement.

A leap year is exactly divisible by 4 except for century years (years ending with 00). The century year is a leap year only if it is perfectly divisible by 400.

## Example 1: Kotlin Program to Check a Leap Year using if else statement

`fun main(args: Array<String>) {`

`val year = 1900`

`var leap = false`

`if (year % 4 == 0) {`

`if (year % 100 == 0) {`

`// year is divisible by 400, hence the year is a leap year`

`leap = year % 400 == 0`

`} else`

`leap = true`

`} else`

`leap = false`

`println(if (leap) "$year is a leap year." else "$year is not a leap year.")`

`}`

When you run the program, the output will be:

1900 is not a leap year.

In the above program, given year 1900 is stored in the variable `year`.

- Since 1900 is divisble by 4 and is also a century year (ending with 00), it has be divisble by 400 for a leap year. Since it’s not divisible by 400, 1900 is not a leap year.
- But, if we change the year to 2000, it is divisible by 4, is a century year and is also divisible by 400. So, 2000 is a leap year.
- Likewise, If we change the year to 2012, it is divisible by 4 and is not a century year, so 2012 a leap year. We don’t need to check if 2012 is divisible by 400 or not.

## Example 2: Kotlin Program to Check Leap Year using when expression

`fun main(args: Array<String>) {`

`val year = 2012`

`var leap = false`

`leap = when {`

`year % 4 == 0 -> {`

`when {`

`year % 100 == 0 -> year % 400 == 0`

`else -> true`

`}`

`}`

`else -> false`

`}`

`println(if (leap) "$year is a leap year." else "$year is not a leap year.")`

`}`

When run the program, the output will be:

2012 is a leap year.

In the above program, instead of using an if else statement, we have used a when expression.

The `when`

expression works as:

- When
`year`is divisible by 4- Another
`when`

expression is entered which checks if`year`is divisible by 100- If yes, it again checks if
`year`is divisble by 400 or not, and returns`true`

or`false`

- If yes, it again checks if
- If not divisble by 100,
`year`is not a century year (ending with 00) and returns`true`

- Another
- If
`year`is not divisible by 4, it returns`false`

Based on the value of `leap`, it prints the output using an *inline if else*.