I have an assignment which includes overriding the prefix and postfix operators, and my teacher has provided what the output from the program should be. I've written the code and it's nearly perfect, except for one tiny error I can't seem to get right.

This is (most of) the code from the header--I left out a few of the parts that aren't relevant to my question:

Code:
using namespace std;
#include<string>
#include<iostream>
class NumDays
{
private:
	int hours;
public:
	NumDays() {hours = 0;}
	NumDays(int);
	NumDays(double);
	void setHours(int);
	void setDays(double);
	int getHours();
	double getDays();
	operator double();
	NumDays operator+(const NumDays&);
	NumDays operator-(const NumDays&);
	NumDays operator++(int);
	NumDays operator--(int);
	NumDays operator++();
	NumDays operator--();
};

//******************************************************************
NumDays::NumDays(int hparam)
{
	hours = hparam;
}

//******************************************************************
NumDays::NumDays(double dparam)
{
	hours = dparam * 8.0;
}

//******************************************************************
void NumDays::setHours(int h)
{
	h = getHours();
}

//******************************************************************
void NumDays::setDays(double d)
{
	d = getDays();
}

//******************************************************************
int NumDays::getHours()
{
	return(hours);
}

//******************************************************************
double NumDays::getDays()
{
	return(hours / 8.0);
}

//**************************************************************
NumDays NumDays::operator++(int)
{
	NumDays temp(hours);
	hours++;
	return temp;
}

//******************************************************************
NumDays NumDays::operator--(int)
{
	NumDays temp(hours);
	hours--;
	return temp;
}

//******************************************************************
NumDays NumDays::operator++()
{
	++hours;
	return *this;
}

//******************************************************************
NumDays NumDays::operator--()
{
	--hours;
	return *this;
}

And here's main:

Code:
int main()
{
    NumDays Employee1(20),
            Employee2(15);
    cout << "Employee1++: " << Employee1++.getHours() << endl;
    cout << "Employee1: " << Employee1.getHours() << endl;
    cout << "++Employee1: " << (++Employee1).getHours() << endl;
    cout << "Employee1: " << Employee1.getHours() << endl;
    cout << "Employee2--: " << Employee2--.getHours() << endl;
    cout << "Employee2: " << Employee2.getHours() << endl;
    cout << "(--Employee2)--: " << (--Employee2)--.getHours() << endl;
    cout << "Employee2: " << Employee2.getHours() << endl; //PROBLEM HERE
    cout << " days: " << Employee2.getDays() << endl; //AND HERE
}
The two problem lines are supposed to be outputting 12 and 1.5, respectively, but are instead showing 13 and 1.625. I know that hours is being changed to 12 at the end of the overriden prefix operation in the line above them, so I don't understand why it returns to 13 again. Can anyone help me understand what I need to change?