In this tutorial, you will learn to check whether a given date is valid using C++. The concept is easy; check if a year is in a reasonable range (1500 to 2200 in this example), a day is not zero, and a month if it falls in the correct range (January has 31 days, April has 30 days, February can have 28 or 29 days, etc.)
Check if a date is valid or not using C++
First, we need a function to check whether a year is a leap.
Check leap year in C++
#include <iostream> using namespace std; bool IsLeap (int year) { bool isLeap; if (year % 4 == 0) { if (year % 100 == 0) { if (year % 400 == 0) isLeap = true; else isLeap = false; } else isLeap = true; } else isLeap= false; return isLeap; }
Now we have the function to check for leap year. Let’s move to the main function of this tutorial: check if a date is valid to not.
bool isDateValid(int month, int day, int year) { bool validation = true; // Check if year within range if (!(year >= 1500 && year <= 2200)) validation = false; // cehck if day is not less than 1 if (day < 1) validation = false; // check the month switch (month) { case 2: // if February, check leap year if (IsLeap(year)) // call another function to check if year is leap or not if (day > 29) validation = false; else if (day > 28) validation = false; break; case 1: //January case 3: //March case 5: //May case 7: //July case 8: //August case 10: //October case 12: //December if (day > 31) validation = false; break; case 4: //April case 6: //Jun case 9: //September case 11: //November if (day > 30) validation = false; break; default: validation = false; break; } return validation; }
Now call the function above:
if (isDateValid(02,77,2022)) { cout << year << "Date is valid"; } else { cout << year << "Date is not valid"; }
Output
Date is not valid
Happy coding!

IT specialist Veteran