Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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;
   }
}