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
