So In my program I have two variables called today and birthday. Both of these variables are type DayOfYear. The DayOfYear class takes in both the date and month. So when I call both today.setday and today.setmonth and birthday.setday and birthday.setmonth it assigns the values to the private variables created by the class for each variables. My teacher wants me to be able to type in the main function cout<<today
and have it print both day and month for this variable how would i set this up?
#include <iostream>
using namespace std;
class DayOfYear
{
public:
DayOfYear( );
void setDay( );
void setMonth( );
void setYear( );
void output( );
int getMonth( );
int getDay( );
private:
int tempday;
int month;
int day;
int year;
int leapyear;
int cont;
};
int main()
{
DayOfYear today, birthday;
cout <<"what year were you born" <<endl;
birthday.setYear( );
cout <<"what year is it now" <<endl;
today.setYear( );
cout << "Enter today's date:\n";
today.setMonth( );
today.setDay( );
cout << "Enter your birthday:\n";
birthday.setMonth();
birthday.setDay( );
cout << "Today's date is ";
today.output( );
cout << "Your birthday is ";
birthday.output( );
if (today.getMonth( ) == birthday.getMonth( ) && today.getDay( ) == birthday.getDay( ))
// remove .operators (make boolean friend function that takes care of everything
//this is where i need the help
cout << "Happy Birthday!\n";
else
cout << "Happy Unbirthday!\n";
return 0;
}
DayOfYear::DayOfYear( )
{
month = 1;
day = 1;
year = 1970;
leapyear = 0;
tempday = 0;
}
void DayOfYear::output( )
{
cout << "month = " << month
<< ", day = " << day << endl;
}
void DayOfYear::setYear( )
{
cin >> year;
if (year%400 == 0 || year%4 == 0 && year%100 != 0)
{
leapyear = 1; //set leapyear to true if conditions are met
}
}
void DayOfYear::setDay()
{
do
{
cout << "Enter the day of the month: ";
cin >> tempday;
if(tempday > 28 && month == 2 && leapyear == 0)
{
cout << "invlaid day" << endl;
tempday = 0;
}
else if(tempday > 30 && month == 4 ||tempday > 30 && month == 6 || tempday > 30 && month == 9 || tempday > 30 && month == 11)
{
cout << "invlaid day" << endl;
tempday = 0;
}
else if(tempday > 31 && month == 1 || tempday > 31 && month == 3 ||tempday > 31 && month == 5 || tempday > 31 && month == 7 ||
tempday > 31 && month == 8 || tempday > 31 && month == 10 || tempday > 31 && month == 12)
{
cout << "invlaid day" << endl;
tempday = 0;
}
else
{
day = tempday;
}
} while(tempday == 0);
}
void DayOfYear::setMonth( )
{
double invalid;
do
{
cout << "Enter month as a number: ";
cin >> month;
if (month > 12 )
{
cout << "invalid month" << endl;
invalid = 1;
}
else if (month <= 12 && month >= 1)
{
invalid = 0;
}
} while (invalid == 1);
}
int DayOfYear::getMonth( )
{
return month;
}
int DayOfYear::getDay( )
{
return day;
}