How to check leap year in C++

3 Answers

0 votes
#include <iostream>
#include <array>

bool isLeapYear(int year) {
    if (year % 400 == 0)
        return true;
    if (year % 100 == 0)
        return false;
        
    return (year % 4 == 0);
}

int main() {
    std::array<int, 15> years = {
        2000, 2400, 1800, 1900, 2100, 2200, 2300, 2500,
        2008, 2012, 2016, 2020, 2024, 2048, 2032
    };

    for (int year : years) {
        if (isLeapYear(year))
            std::cout << year << " is a leap year.\n";
        else
            std::cout << year << " is not a leap year.\n";
    }
}



/*
run:

2000 is a leap year.
2400 is a leap year.
1800 is not a leap year.
1900 is not a leap year.
2100 is not a leap year.
2200 is not a leap year.
2300 is not a leap year.
2500 is not a leap year.
2008 is a leap year.
2012 is a leap year.
2016 is a leap year.
2020 is a leap year.
2024 is a leap year.
2048 is a leap year.
2032 is a leap year.

*/

 



answered May 23, 2017 by avibootz
edited 12 hours ago by avibootz
0 votes
#include <iostream>
#include <array>

bool isLeapYear(int year) {
    return !(year & (year % 100 ? 3 : 15));
}

int main() {
    std::array<int, 15> years = {
        2000, 2400, 1800, 1900, 2100, 2200, 2300, 2500,
        2008, 2012, 2016, 2020, 2024, 2048, 2032
    };

    for (int year : years) {
        if (isLeapYear(year))
            std::cout << year << " is a leap year.\n";
        else
            std::cout << year << " is not a leap year.\n";
    }
}



/*
run:

2000 is a leap year.
2400 is a leap year.
1800 is not a leap year.
1900 is not a leap year.
2100 is not a leap year.
2200 is not a leap year.
2300 is not a leap year.
2500 is not a leap year.
2008 is a leap year.
2012 is a leap year.
2016 is a leap year.
2020 is a leap year.
2024 is a leap year.
2048 is a leap year.
2032 is a leap year.

*/

 



answered 12 hours ago by avibootz
0 votes
#include <iostream>
#include <array>

bool isLeapYear(int year) {
    if (year % 400 == 0)
        return true;
    else if (year % 100 == 0)
             return false;
    else if (year % 4 == 0)
             return true;
      
    return false;
}

int main() {
    std::array<int, 15> years = {
        2000, 2400, 1800, 1900, 2100, 2200, 2300, 2500,
        2008, 2012, 2016, 2020, 2024, 2048, 2032
    };

    for (int y : years) {
        if (isLeapYear(y))
            std::cout << y << " is a leap year\n";
        else
            std::cout << y << " is NOT a leap year\n";
    }
}



/*
run:

2000 is a leap year
2400 is a leap year
1800 is NOT a leap year
1900 is NOT a leap year
2100 is NOT a leap year
2200 is NOT a leap year
2300 is NOT a leap year
2500 is NOT a leap year
2008 is a leap year
2012 is a leap year
2016 is a leap year
2020 is a leap year
2024 is a leap year
2048 is a leap year
2032 is a leap year

*/

 



answered 12 hours ago by avibootz

Related questions

3 answers 284 views
2 answers 253 views
253 views asked Feb 13, 2021 by avibootz
2 answers 184 views
184 views asked Feb 13, 2021 by avibootz
1 answer 172 views
1 answer 114 views
114 views asked Dec 12, 2024 by avibootz
1 answer 108 views
108 views asked Dec 12, 2024 by avibootz
1 answer 103 views
103 views asked Dec 12, 2024 by avibootz
...