using namespace std; void dateType::setDate(int month, int day, int year) { // w
ID: 3765247 • Letter: U
Question
using namespace std;
void dateType::setDate(int month, int day, int year)
{
// write your code here!!!!!
}
int dateType::getDay() const
{
return dDay;
}
int dateType::getMonth() const
{
return dMonth;
}
int dateType::getYear() const
{
return dYear;
}
bool dateType::isLeapYear()
{
if (((dYear % 4 == 0) && (dYear % 100 != 0)) || dYear % 400 == 0)
return true;
else
return false;
}
void dateType::printDate() const
{
cout << dMonth << "-" << dDay << "-" << dYear;
}
//constructor
dateType::dateType(int month, int day, int year)
{
setDate(month, day, year);
}
Explanation / Answer
//I added code for verifying date and month. For year add check based any range you want to maintain
void dateType::setDate(int month, int day, int year)
{
bool valid = true;
if (day < 1 || day > 31)
valid = false;
//30 days for jan,apr,jun,sep,nov , 31 days = mar, may, july, aug,oct, dec, 28/29 - feb
if (month == 1 || month == 4 || month == 6 || month == 9 ||month == 11) {
if (month > 30)
valid = false;
}
if (month == 2) {
if (day > 29)
valid = false;
if (isLeapYear() == false && day > 28)
valid = false;
}
//Add condition for year here
if(valid) {
dDay = day;
dMonth = month;
dYear = year;
} else {
cout << "Invalid Date" <<endl;
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.