Write a program that prompts correctly and validates the input for a date. For e
ID: 3626889 • Letter: W
Question
Write a program that prompts correctly and validates the input for a date.
For every input value requested you must validate it and if invalid, request it again until user
enters legal input.
Example of input:
Enter the year (an integer between 1900 .. 2100) : 2011
Enter month of year (an integer between 1..12): 2
Enter day of month (an integer between 1..28): 28
Example of input:
Enter the year (an integer between 1900 .. 2100) : 2012
Enter month of year (an integer between 1..12): 2
Enter day of month (an integer between 1..29): 28
Example of input:
Enter the year (an integer between 1900 .. 2100) : 2012
Enter month of year (an integer between 1..12): 7
Enter day of month (an integer between 1..31): 28
Explanation / Answer
#include<iostream>
using namespace std;
bool isleapyear(int year)
{
return year%400 ==0 || (year%100 != 0 && year%4 == 0);
}
int main()
{
int year;
int day;
int month;
cout << "Enter the year (an integer between 1900 .. 2100) :";
cin >> year;
while( year<1900 || year > 2100)
{
cout << "Invalid year entered "<<endl;
cout << "Reenter the year (an integer between 1900 .. 2100) :";
cin>>year;
}
cout << "Enter month of year (an integer between 1..12):";
cin >> month;
while( month<1 || month > 12)
{
cout << "Invalid month entered "<<endl;
cout << "ReEnter month of year (an integer between 1..12):";
cin>>month;
}
if(isleapyear(year) && month==2)
{
cout << "Enter day of month (an integer between 1..29):";
cin >> day;
while( day<1 || day > 29)
{
cout << "Invalid day entered "<<endl;
cout << "ReEnter day of month (an integer between 1..29):";
cin>>day;
}
}
else if(month ==2)
{
cout << "Enter day of month (an integer between 1..28):";
cin >> day;
while( day<1 || day > 28)
{
cout << "Invalid day entered "<<endl;
cout << "ReEnter day of month (an integer between 1..28):";
cin>>day;
}
}
else if(month ==1 || month ==3 || month == 5 || month == 7 || month==8 || month == 10 || month == 12)
{
cout << "Enter day of month (an integer between 1..31):";
cin >> day;
while( day<1 || day > 31)
{
cout << "Invalid day entered "<<endl;
cout << "ReEnter day of month (an integer between 1..31):";
cin>>day;
}
}
else
{
cout << "Enter day of month (an integer between 1..30):";
cin >> day;
while( day<1 || day > 30)
{
cout << "Invalid day entered "<<endl;
cout << "ReEnter day of month (an integer between 1..30):";
cin>>day;
}
}
cout <<" your Day is " << day << " / " << month << " / " << year <<endl;
system("pause");
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.