### else/ if statements help

assuming everything else works...i'm having trouble with the output...the if else statements are driving me crazy. it is outputting the date twice when i enter 7/3/12
code displays todays date....displays "payday" entered......adds 7 days to "payday" to show NEXT payday.

void Date::addDays(int month, int day, int year)
{
_day = _day + 7;

if(_day > 30)
{
_day = _day - 30;
_month = _month + 1;
}
else
{
cout << _month;
cout << "/";
cout << _day;
cout << "/";
cout << _year;
}

if(_month>12 )
{
_month = _month - 12;
cout << _month;
cout << "/";
cout << _day;
_year = _year + 1;
cout << "/";
cout << _year;
}
else if(_month < 12)
{
cout << _month;
cout << "/";
cout << _day;
cout << "/";
cout << _year;

}
}

OUTPUT:

When is pay day?
MONTH: 7
DAY: 3
YEAR: 12

Today's date is: 11/1/12

The date of payday is: 7/3/12

Next's week's payday is: 7/10/127/10/12

Press any key to continue . . .
Make sure that you only output things once. If day < 30 and month < 12 in your case, then it will do both else statments and print the date twice.

Change your function to this:

 ``12345678910111213141516171819202122`` ``````void Date::addDays(int month, int day, int year) { _day = _day + 7; if(_day > 30) { _day = _day - 30; _month = _month + 1; } if(_month>12 ) { _month = _month - 12; _year = _year + 1; } cout << _month; cout << "/"; cout << _day; cout << "/"; cout << _year; }``````

Oh also, your function uses _month, _day, _year, which I assume are member variables. The formal parameters (month, day, year) are unused.
Last edited on
Step through your logic.
Is day > than 30? No, display the date.
Is month < 12? Yes, display the date.

You want to do all your calculations first. Then have one set of statements to display the date (outside any if statements).

PLEASE USE CODE TAGS (the <> formatting button) when posting code.

BTW, your variable names don't agree with your arguments.

Last edited on
Thank you Stewbond!
i know the question was trivial
but the if else staments were driving me crazy last night
you suggested less code and it worked!
i had less code but i decided to add more and it was like a web
thank you!
Topic archived. No new replies allowed.