R Program to check if given year is leap year or not


September 16, 2021, Learn eTutorial
764

What is meant by leap year? How to check whether the given year is a leap year or not?

 A year that has 366 days (with an extra day in February 29 days, usually 28 days) is called a LEAP YEAR. A leap year is coming after 3 normal years ie., the 4th year after a leap year will be the other one. Here, we are explaining how to check whether the given year is a leap or not. 

  • If a year given is divisible by 4 without any remainder means it's a leap year, otherwise not.
  • If the given year is a century (years ending with 00) then it should also be divisible by 400 otherwise, it's not a leap year

How to solve this leap year program using R?

Leap year check can be implemented very simply using  nested if .. else condition in R programming. First, we will ask the user to enter a year for leap year checking. R provides readline() function for taking the user's input by prompting an appropriate message to the user for data using 'prompt'.

Here the user is asked to enter a year, data will be stored to a variable named year. Then, check the given year can be divided by 4, If the remainder is zero it is a leap year otherwise not a leap year. Also, check the given year is a century (eg., 2000) dividing the year by 100 without any remainder; then divide the year by 400 and check whether the remainder is 0, if that condition is also satisfied then it is a leap year, and if not means it's a normal year.

Let's understand with some examples,

Consider the year 2004, it is completely divided by 4 and thus it is a leap year. If we take 2005 it is not  fully divided by 4 and thus it's not a leap year.

Now check examples of the century years, we should satisfy an extra condition for century ie., for a century being leap year we should also divide it by 400 and check any remainder left. Consider the year 2000, it can be divided by 4 and let's confirm it is a century as dividing 2000 by 100 and then to check for leap year divide by 400. Here 2000 is a century and a leap year, but if we take 1900 it will satisfy the first 2 conditions but won't divide by 400 and thus it's not a leap year.

ALGORITHM

STEP 1: Read a year prompting appropriate messages to the user using readline() into variable year

STEP 2: First look for a century, use nested if condition to check year is exactly divisible by 4,100,400 and gives a remainder of 0;

  • If yes print The year is a leap year
  • else print The year is not a leap year 

STEP 3: If a year is divisible by 4 but not by 100 means year is not a century then  print The year is a leap year

STEP 4: If a year is not divisible by 4 then print The year is not a leap year 

R Source Code

                                          year = as.integer(readline(prompt="Enter a year: "))
if((year %% 4) == 0) {
    if((year %% 100) == 0) {
        if((year %% 400) == 0) {
            print(paste(year,"is a leap year"))
        } else {
            print(paste(year,"is not a leap year"))
        }
    } else {
        print(paste(year,"is a leap year"))
    }
} else {
    print(paste(year,"is not a leap year"))
}
                                      

OUTPUT

Enter a year: 2011
[1] "2011 is not a leap year"

Enter a year: 2004
[1] "2004 is a leap year"