コード例 #1
0
ファイル: Hotell.cpp プロジェクト: Beedle/Prosjekt
//endrer info etter type (1=annkomst, 2=avreise, 3 = begge)
void Hotell::endre(int type)
{
	bool funnet = false;	//er rommet funnet
	Rom* tempRom;
	List* tempList;
	Reservasjon* tempRes;

	string eier = les("Romeier:");
	int origAnkomst = getdate("\nOriginal ankomst", timer.hent_dato());

	for (int i = 0; i < 3; i++)
	{
		//for alle rom
		for (int j = 1; j <= rom[i]->no_of_elements(); j++)
		{
			
			tempRom = (Rom*)rom[i]->remove_no(j);

			//henter listen over reservasjoner.
			tempList = (List*)tempRom->getlist();
			
			//alle reservasjonene til ett rom.
			for (int k = 1; k <= tempList->no_of_elements(); k++)
			{
				tempRes = (Reservasjon*)tempList->remove_no(k);
				
				//hvis det er en reservasjon for dagens dato.
				if (origAnkomst == tempRes->getAnkomst())
				{
					funnet = true;
					cout << "\nRomnummer: " << tempRom->getid() << endl;
					tempRes->display(false);

					if (confirm("\nVil du endre denne reservasjonen?"))
					{
						if (type == 1 || type == 3)
						{
							//endrer avreisen
							tempRes->setAnkomst(getdate("\nNy ankomst", timer.hent_dato()));
						}
						if (type == 2 || type == 3)
						{
							//endrer avreisen
							tempRes->setAvreise(getdate("\nNy avreise", timer.hent_dato()));
						}
						
					}
				}
				//setter tilbake
				tempList->add(tempRes);
				tempRom->replaceList(tempList);
			}
			rom[i]->add(tempRom);
		}
	}
	if (!funnet)
	{
		cout << "\nReservasjon ikke funnet" << endl;
	}
}
コード例 #2
0
ファイル: romClass.cpp プロジェクト: Amnesthesia/Course-OOP
/******************************************************************************
	name:        void listReservationsGaps
	description: The inverse of listReservations -- instead of listing when the 
	             room is reserved, it lists the gaps between reservations, to 
				 display when the room is NOT reserved
	parameters:  n/a
	returns:     n/a
******************************************************************************/
void Rom::listReservationsGaps()
{
	int availableFrom = tid.hent_dato(), nextArrival = 0;
	Reservasjon* temp = nullptr;

	for(int i = 1; i <= Reservations->no_of_elements(); i++)
	{
		temp = (Reservasjon*) Reservations->remove_no(i);
		Reservations->add(temp);
		if(temp->getArrival() <= availableFrom && temp->getDeparture() > tid.hent_dato())
			availableFrom = temp->getDeparture();
		else if(temp->getDeparture() < availableFrom)
			availableFrom = tid.hent_dato();
		else if(temp->getArrival() > availableFrom)
			nextArrival = temp->getArrival();
			

		if(nextArrival > availableFrom)
			cout << "\nRoom #" << temp->getRoomID() << " is available from " << availableFrom << "-" << nextArrival;
		
		availableFrom = temp->getDeparture();
	}

	if(((availableFrom > 0 && nextArrival == 0) ||( availableFrom > 0 && nextArrival < availableFrom) && temp != nullptr))
	{
		cout << "\nRoom #" << temp->getRoomID() << " is available from " << availableFrom;
		cin.get();
	}
}
コード例 #3
0
ファイル: romClass.cpp プロジェクト: Amnesthesia/Course-OOP
/******************************************************************************
	name:        void listReservations
	description: Lists all reservations for this object
	parameters:  n/a
	returns:     n/a
******************************************************************************/
void Rom::listReservations()
{
	for (int i = 1; i <= Reservations->no_of_elements(); i++)
	{
		Reservasjon* temp = (Reservasjon*) Reservations->remove_no(i);
		Reservations->add(temp);
		temp->display();
	}
}
コード例 #4
0
ファイル: Hotell.cpp プロジェクト: Beedle/Prosjekt
void Hotell::displayOkkupant()
{
	Rom* tempRom;
	List* tempList;
	Reservasjon* tempRes;
	bool funnetNr = false;
	bool funnetRes = false;

	int romNr;
	cout << "Ronmummer: ";
	cin >> romNr;

	//for alle typer rom
	for (int i = 0; i < 3; i++)
	{
		//for alle rom
		for (int j = 1; j <= rom[i]->no_of_elements(); j++)
		{
			
			tempRom = (Rom*)rom[i]->remove_no(j);
			rom[i]->add(tempRom);

			if (tempRom->getid() == romNr)
			{
				funnetNr = true;

				//henter listen over reservasjoner.
				tempList = (List*)tempRom->getlist();
				
				//alle reservasjonene til ett rom.
				for (int k = 1; k <= tempList->no_of_elements(); k++)
				{
					tempRes = (Reservasjon*)tempList->remove_no(k);
					tempList->add(tempRes);
					
					//hvis det er en reservasjon for dagens dato.
					if (timer.hent_dato() <= tempRes->getAvreise() && timer.hent_dato() >= tempRes->getAnkomst())
					{
						funnetRes = true;
						tempRes->display(true);
					}
				}
			}
		}
	}

	//hvis rommet eller reservasjonen ikke er funnet
	if (!funnetNr)
	{
		cout << "Romnummer ikke funnet" << endl;
	}
	else if (!funnetRes)
	{
		cout << "Ingen reservasjon i dag" << endl;
	}
}
コード例 #5
0
ファイル: romClass.cpp プロジェクト: Amnesthesia/Course-OOP
/******************************************************************************
	name:        void writeRomDataToFile(ofstream &)
	description: Writes data about a specific room to file:
					Room number
					Number of beds
					Breakfast included
					Reservation(s)
	parameters:  (ofstream) & file
	returns:     n/a
******************************************************************************/
void Rom::writeRomDataToFile(ofstream & outFile)
{
	outFile << roomNumber << "\n" << numberOfBeds << "\n" << (breakfastIncluded ? 1 : 0 )<< "\n";
	outFile << Reservations->no_of_elements() << "\n";
		for (int i = 1; i <= Reservations->no_of_elements(); i++)
		{
			Reservasjon* temp = (Reservasjon*) Reservations->remove_no(i);
			Reservations->add(temp);
			temp->writeDataToFile(outFile);
		}
}
コード例 #6
0
ファイル: Hotell.cpp プロジェクト: Beedle/Prosjekt
void Hotell::ledigTidRom()
{
	int romNr;				//rommet du vil ha
	bool funnet = false;	//er rommet funnet
	Rom* tempRom;
	List* tempList;
	Reservasjon* tempRes;

	cout << "Hvilket romnummer?" << endl;
	cin >> romNr;

	//Alle romtypene
	for(int i = 0; i < 3; i++)
	{
		//Alle rommene
		for (int j = 1; j <= rom[i]->no_of_elements(); j++)
		{
			tempRom = (Rom*)rom[i]->remove_no(j);
			rom[i]->add(tempRom);

			//hvis rommet er riktig
			if (romNr == tempRom->getid())
			{
				tempList = tempRom->getlist();
				funnet = true;
				cout << "\nRommet er opptatt i perioden(e):\n";

				//hvis det ikke er noen reservasjoner
				if (tempList->no_of_elements() == 0)
				{
					cout << "Ingen reservasjoner" << endl;
				}
				else
				{
					//For alle reservasjonene
					for (int k = 1; k <= tempList->no_of_elements(); k++)
					{
						tempRes = (Reservasjon*)tempList->remove_no(k);
						tempList->add(tempRes);
						
						cout << '\t' << tempRes->getAnkomst() << "\t-\t" << tempRes->getAvreise() << endl;
					}
				}
			}
		}
	}

	//hvis rommet er funnet
	if (!funnet)
	{
		cout << "Romnummer ikke funnet." << endl;
	}
}
コード例 #7
0
ファイル: romClass.cpp プロジェクト: Amnesthesia/Course-OOP
/******************************************************************************
	name:        bool checkReservationData(string, int)
	description: Checks if a reservation really exist. This functions checks
	             both the registered user AND the registered date.
	parameters:  string name, int date
	returns:     (int) 1 or 0
					0 = reservation does NOT exist
					1 = reservation exist
******************************************************************************/
bool Rom::checkReservationData(string name, int date)
{
	for (int i = 1; i <= Reservations->no_of_elements(); i++)
	{
		Reservasjon * temp = (Reservasjon *) Reservations->remove_no(i);
		Reservations->add(temp);

		if (temp->getArrival() == date && temp->sameNameAsReservation(name))
			return true;
		else 
			return false;
	}
}
コード例 #8
0
ファイル: romClass.cpp プロジェクト: Amnesthesia/Course-OOP
Reservasjon* Rom::setReservation(int arrival, int departure, bool breakfast, bool extrabed)
{
	
    // Now set up the reservation with provided arguments and names ...
    Reservasjon* r = new Reservasjon(roomNumber, arrival, departure);
    r->setExtrabedInUse(extrabed);
    r->setBreakfast(breakfast);

    // Add our reservation to our list of reservations for this room, and return it
    Reservations->add(r);
	//Reservations->display_list();

    return r;
}
コード例 #9
0
ファイル: Hotell.cpp プロジェクト: Beedle/Prosjekt
void Hotell::utskjekking()
{
	//filnavnet er egen variabel.
	ofstream fil;
	fil.open(filnavn+".HST");
	string navn;

	Rom* tempRom;
	List* tempList;
	Reservasjon* tempRes;

	bool funnet = false;


	navn = les("\nUtskjekkers navn:");

	//for alle rom
	for (int x = 0; x < 3; x++)
	{
		for (int y = 1; y <= rom[x]->no_of_elements(); y++)
		{
			//henter ut rommet
			tempRom = (Rom*)rom[x]->remove_no(y);
			rom[x]->add(tempRom);

			tempList = tempRom->getlist();

			for (int z = 1; z <= tempList->no_of_elements(); z++)
			{
				tempRes = (Reservasjon*)tempList->remove_no(z);

				//hvis den er riktig
				if (navn == tempRes->getNavn() && timer.hent_dato() == tempRes->getAvreise())
				{
					funnet = true;

					tempRes->utskjekking(fil);
				}
				else
				{ //hvis det ikke er riktig reservasjon, sett den tilbake.
					tempList->add(tempRes);
				}
			}
		}
	}

	fil.close();
}
コード例 #10
0
ファイル: rom.cpp プロジェクト: olemelbo/pannekake
/**
 *	Sjekker om rom er ledig i en tidsperiode
 *	@param int ankomst		ankomstdato
 *	@param int avreise		avreisedato
 *	@return bool			retunerer om perioden er ledig eller ikke
 */
bool Rom::ledig(int ankomst, int avreise) {
	Reservasjon* reservasjon;
	// Antall reservasjoner
	int antall_reservasjoner = reservasjoner->no_of_elements();
	for(int j = 1; j <= antall_reservasjoner; j++) {
		reservasjon = (Reservasjon*) reservasjoner->remove_no(j);	// Henter ut en reservasjon
		// Sjekker om perioden er ledig
		if(ankomst <= reservasjon->getAvreiseDato() && avreise >= reservasjon->getAnkomstDato())	
            return false;
		// Legger reservasjonen tilbake i listen over reservasjoner
        reservasjoner->add(reservasjon);
	}
    
    return true;
    
}
コード例 #11
0
ファイル: rom.cpp プロジェクト: olemelbo/pannekake
/**
 *	Skriver rommet til fil.
 *	@param ostream* ut
 */
void Rom::skriv_til_fil(ostream* ut) {
	
    *ut << number << "\n"
        << ant_senger << "\n"
        << frokost_inkludert << "\n"
        << reservasjoner->no_of_elements() << "\n";
    
    Reservasjon* temp;
    // Looper igjennom antall reservasjoner
	for (int i = 1;  i <= reservasjoner->no_of_elements();  i++)  {
		temp = (Reservasjon*) reservasjoner->remove_no(i);	// Henter ut en reservasjon
		temp->skriv_til_fil(ut);		// Skriver reservasjonen til fil
		reservasjoner->add(temp);	// Legger reservasjonen tilbake i listen
	}

}
コード例 #12
0
ファイル: Hotell.cpp プロジェクト: Beedle/Prosjekt
void Hotell::avbestille(string txt){

	Rom* tempRom;
	List *tempList;
	Reservasjon *tempRes;

	//Alle romtypene
	for(int x = 0; x < 3; x++){

		//alle rommene
		for (int y = 1; y <= rom[x]->no_of_elements(); y++){

			//henter ut rom.
			tempRom = (Rom*)rom[x]->remove_no(y);
			rom[x]->add(tempRom);

			//henter listen over reservasjoner.
			tempList = (List*)tempRom->getlist();

			//alle reservasjonene til ett rom.
			for (int z = 1; z <= tempList->no_of_elements(); z ++){

				//henter ut reservasjonen
				tempRes = (Reservasjon*)tempList->remove_no(z);

				//dersom det stemmer
				if (!tempRes->compNavn(txt)){

					//skriver ut reservasjonen og spør om den skal fjernes.
					tempRom->display(false);
					tempRes->display(false);
					if(!confirm("\nVil du fjerne?")){
						tempList->add(tempRes);
					}
					//dersom det fjernes minker z, for å kompensere for
					//fjernet reservasjon.
					else (z--);
				}
				//dersom det ikke stemmer legges reservasjonen tilbake.
				else {
					tempList->add(tempRes);
				}
			}
		}
	}
}
コード例 #13
0
ファイル: rom.cpp プロジェクト: olemelbo/pannekake
/**
 *	Sjekker om rommet er ledig 
 */
bool Rom::ledig(int ankomst) {
	// Henter ut antall reservasjoner
    int antall_reservasjoner = reservasjoner->no_of_elements();
    bool ledig = true;
    // Looper gjennom alle reservasjoner
    for(int i = 0; i < antall_reservasjoner; i++) {
		// Henter ut en reservasjon
        Reservasjon* reservasjon = (Reservasjon*) reservasjoner->remove_no(i);
        // Sjekker om tidsperioden er ledig.
		if(ankomst > reservasjon->getAnkomstDato() && ankomst < reservasjon->getAvreiseDato()) {
            ledig = false;
        }
		// Legger reservasjonen tilbake i listen med reservasjoner
        reservasjoner->add(reservasjon);
    }
    
    return ledig;	// Retunerer true eller false.
}
コード例 #14
0
ファイル: Hotell.cpp プロジェクト: Beedle/Prosjekt
void Hotell::addRegning()
{
	int romNr;				//rommet du vil ha
	bool funnet = false;	//er rommet funnet
	Rom* tempRom;
	List* tempList;
	Reservasjon* tempRes;

	cout << "Hvilket romnummer?" << endl;
	cin >> romNr;

	//Alle romtypene
	for(int i = 0; i < 3; i++)
	{
		//Alle rommene
		for (int j = 1; j <= rom[i]->no_of_elements(); j++)
		{
			tempRom = (Rom*)rom[i]->remove_no(j);

			//hvis rommet er riktig
			if (romNr == tempRom->getid())
			{
				tempList = tempRom->getlist();
				//for alle reservasjoner
				for (int j = 0; j < tempList->no_of_elements(); j++)
				{
					tempRes = (Reservasjon*)tempList->remove_no(j);
					if (tempRes->getAnkomst() <= timer.hent_dato() && tempRes->getAvreise() >= timer.hent_dato())
					{
						funnet = true;
						//legg inn ting.
						tempRes->addRegning();
						tempList->add(tempRes);
						tempRom->replaceList(tempList);
					}
				}
			}
			rom[i]->add(tempRom);
		}
	}
}
コード例 #15
0
ファイル: romClass.cpp プロジェクト: Amnesthesia/Course-OOP
void Rom::reservationByName(std::string name, int action)
{
	for (int i = 1; i <= Reservations->no_of_elements(); i++)
	{
		Reservasjon* temp = (Reservasjon*) Reservations->remove_no(i);
		
		if (temp->sameNameAsReservation(name))
		{
			temp->display();
			
			// If this method was called with action set to REMOVE,
			// ask the user whether or not to remove the reservation.
			if(action == REMOVE && readChar("Delete reservation?", 'y','n') == 'y')
			{
				Reservations->destroy(temp->getArrival());
			}

			// If the action is set to CHECKIN, and today is the expected arrival date, and the user answers "y" to "Check-in?", 
			// then set checkin timestamp to current datetime by passing no parameters to setCheckin.
			else if(action == CHECKIN && temp->getArrival() == tid.hent_dato() && readChar("Check-in?",'y','n') == 'y')
			{
				temp->setCheckin();
				Reservations->add(temp);
			}
			else
				Reservations->add(temp);
		}
		else
		{
			Reservations->add(temp);
		}
	}
}
コード例 #16
0
ファイル: Hotell.cpp プロジェクト: Beedle/Prosjekt
void Hotell::ledigeRom(int nr)
{
	//midlertidlige variabler
	Rom* tempRom;
	List* tempResList;
	Reservasjon* tempRes;
	bool opptatt = false;

	//hvilket tidsrom vil du finne?
	int minDate = getdate("\nFra dato: ", timer.hent_dato());
	int maxDate = getdate("\nTil dato: ", minDate);

	//for alle rom av typen 'nr'
	for (int i = 1; i <= rom[nr]->no_of_elements(); i++)
	{
		tempRom = (Rom*)rom[nr]->remove_no(i);
		rom[nr]->add(tempRom);

		tempResList = (List*)tempRom->getlist();

		//for alle reservasjoner
		for (int j = 1; j <= tempResList->no_of_elements(); j++)
		{
			tempRes = (Reservasjon*)tempResList->remove_no(j);
			tempResList->add(tempRes);

			//hvis reservasjonen gjelder for 
			if (!(maxDate < tempRes->getAnkomst() || minDate > tempRes->getAvreise()))
			{
				opptatt = true;
			}
		}
		//hvis dette rommet ikke er opptatt
		if (!opptatt)
		{
			//skriv ut romnr
			cout << tempRom->getid() << ' ';
		}
	}
}
コード例 #17
0
ファイル: Hotell.cpp プロジェクト: Beedle/Prosjekt
void Hotell::displayResEier()
{
	Rom* tempRom;
	List* tempList;
	Reservasjon* tempRes;

	string navn = les("Eierens navn:");

	//for alle typer rom
	for (int i = 0; i < 3; i++)
	{
		//for alle rom
		for (int j = 1; j <= rom[i]->no_of_elements(); j++)
		{
			
			tempRom = (Rom*)rom[i]->remove_no(j);
			rom[i]->add(tempRom);

			//henter listen over reservasjoner.
			tempList = (List*)tempRom->getlist();

			//alle reservasjonene til ett rom.
			for (int k = 1; k <= tempList->no_of_elements(); k++)
			{
				tempRes = (Reservasjon*)tempList->remove_no(k);
				tempList->add(tempRes);

				if (navn == tempRes->getNavn())
				{
					cout << tempRom->getid() << ' ';
				}
			}
		}
	}

	cout << endl;
}
コード例 #18
0
ファイル: romClass.cpp プロジェクト: Amnesthesia/Course-OOP
/******************************************************************************
	name:        isReserved()
	description: Checks if the room is booked on (or between) certain dates
	parameters:  int date, int nights
	return:      (bool)
					0 = room is not reserved
					1 = room is reserved
******************************************************************************/
bool Rom::isReserved(int date, int nights)
{
	// If we have no reservations at all, there's no need to check ...
	if(Reservations->is_empty())
		return false;


    // We use a tm timestruct to make SURE our dates are correct when iterating later on...
    struct tm time;
    int correctedTime;

    // Lets set up that time struct...
    time.tm_year = date / 10000;
    time.tm_mon = (date % (time.tm_year * 10000)) / 100;
    time.tm_mday = (date % (time.tm_year * 10000)) % 100;
    time.tm_hour = 12;
    time.tm_min = 0;
    time.tm_sec = 0;
    mktime(&time);

    // Loop through the list from end to beginning
    for(int i = Reservations->no_of_elements(); i > 0; i--)
    {
        // ... and remove each element, one at the time ...
        Reservasjon* r = (Reservasjon*) Reservations->remove_no(i);

        // Now, if nights-parameter is set, we must check the status of the room
        // for several days ...
        if(nights > 0)
        {
            // Increment date by 1 ...
            for(int k=1; k<=nights; k++)
            {
                // Increment tm_mday, then run mktime to correct potentially invalid values
                time.tm_mday++;
                mktime(&time);

                // ... and now, format that to YYYYMMDD :)
                correctedTime = (time.tm_year * 10000) + (time.tm_mon * 100) + time.tm_mday;

                // If this new time value is a value between the arrival and departure value of the reservation,
                // that would imply the room is already booked on that day ...
                if(correctedTime >= r->getArrival() && correctedTime <= r->getDeparture())
                {
					// ... and put our reservation back in the list...
					Reservations->add(r);
                    // If it's booked, just return -- no point in continuing
                    return true;
                }
            }
        }
        else
            if(date >= r->getArrival() && date <= r->getDeparture())
            {
				// ... and put our reservation back in the list...
				Reservations->add(r);
				// If it's booked, just return -- no point in continuing
                return true;
			}
    }

    return false;
}
コード例 #19
0
ファイル: romClass.cpp プロジェクト: Amnesthesia/Course-OOP
Reservasjon* Rom::reservationByDate(int date, int action)
{
	extern Hotell* hotellet;
	for (int i = 1; i <= Reservations->no_of_elements(); i++)
	{
		Reservasjon* temp = (Reservasjon*) Reservations->remove_no(i);
		
		// If this method was called with action CHECKOUT and departure date is the provided date for the reservation,
		// or action was checkin and arrival date is the date of this reservation, then return the reservation
		if ((action == CHECKOUT) || (action == CHECKIN && temp->getArrival() == date))
		{
			
			// If action is checkout, destroy reservation, and create a temporary reservation object with errorcode
			// "reservation has been pruned" to be returned
			if(action == CHECKOUT && temp->getDeparture() == date)
			{
				temp->display();
				if(readChar("Confirm checkout?",'y','n')=='y')
				{
					// Get filename, subtract file ending and apply new filename
					std::string hotellHst = hotellet->getFilename().substr(0, hotellet->getFilename().size()-4);
					hotellHst += ".hst";
		
					// ... aaaand output! 
					std::ofstream o(hotellHst.c_str(), std::ios::out|ios::app);
					temp->writeDataToFile(o);

					Reservations->destroy(temp->getRoomID());

					temp = new Reservasjon(reservationHasBeenPruned);
				}
				// Otherwise, put it back in the list
				else 
					Reservations->add(temp);
			}
			// If action is checkout, and a reservation on the room is current, but departure on reservation is not today,
			// ask if we want to check him out earlier than planned, and if so, call this method with his/her planned
			// departure date
			else if(action == CHECKOUT && temp->getDeparture() >= date && temp->getArrival() <= date)
			{
				std::cout << "\nGuest in room " << temp->getRoomID() << " is not meant to check out until " << temp->getDeparture();
				if(readChar("\nCheck out anyways?",'y','n') == 'y')
				{
					Reservations->add(temp);
					return reservationByDate(temp->getDeparture(), CHECKOUT);
				}
			}
			// If action is check in, ask for confirmation to check in, and display information about the reservation
			else if(action == CHECKIN && readChar("Check-in?",'y','n') == 'y')
			{
				temp->display();
				temp->setCheckin();
				Reservations->add(temp);
			}
			// Otherwise, put it back in our list
			else
			{
				Reservations->add(temp);
			}
			
			return temp;
		}
		// If the method was called with NOOP action, as in NO OPeration, display the data without modifying it; essentially the same as 
		// checkin, except it ONLY displays data about the reservation, and date may be any date within the time period of the reservation,
		// as opposed to requiring a specific checkin date. It does however require guests to be checked in.
		else if (action == NOOP && temp->getDeparture() >= date && temp->getArrival() <= date  && temp->getInUse() == true)
		{
			//temp->display(roomNumber);
			Reservations->add(temp);
			return temp;
		}
	}

	// If no matching reservation was found, return a new reservations object, with
	// roomID containing the errorcode
	return new Reservasjon(reservationDoesNotExist);
}
コード例 #20
0
ファイル: romClass.cpp プロジェクト: Amnesthesia/Course-OOP
/******************************************************************************
	name:        void editReservation(string, int)
	description: Edit a reservation. If possible, you can change the arrival
	             and/or departure date.
	parameters:  (string) name, (int) date
	returns:     n/a
******************************************************************************/
void Rom::editReservation(string name, int date)
{
	extern Timer tid;
	int todaysDate = tid.hent_dato();
	int newDate;
	char userCommand;

	for (int i = 1; i <= Reservations->no_of_elements(); i++)
	{
		Reservasjon * temp = (Reservasjon *) Reservations->remove_no(i);

		if (temp->getArrival() == date && temp->sameNameAsReservation(name))
		{
			if (temp->getInUse() == 0) 
			{
				cout << "\nAvailable choices:";
				cout << "\n\t 1) Change arrival date";
				cout << "\n\t 2) Change departure date";
				cout << "\n\t Q) QUIT";

				userCommand = readCommand();

				switch(userCommand)
				{
				case '1':
					{
						do 
						{	// Gir "kunde" den allerede registrerte datoen, i 
							// tilfellet ikke ledig i andre tidsperioder. 
							// (For å hindre en loop man ikke kommer seg ut av)
							cout << "Arrival date already registered: " << temp->getArrival() << "\n"; 
							cout << "\nEnter the new arrival date: ";
							cin >> newDate; cin.ignore();
							
							// Check if room is reserved between the new date and deparature.
						} while (this->isReserved(newDate, tid.forskjell_datoer(newDate, date))); 

						temp->setArrival(newDate);
						cout << "\nNotice: Arrival date has been updated.\n"; cin.get();
						break;
					}
				case '2':
					{
						do 
						{   // Gir "kunde" den allerede registrerte datoen, 
							// i tilfellet ikke ledig i andre tidsperioder. 
							// (For å hindre en loop man ikke kommer seg ut av)
							cout << "The departure date already registered: " << temp->getDeparture() << "\n";
							cout << "\nEnter the new departure date: ";
							cin >> newDate; cin.ignore();
						} while (this->isReserved( temp->getArrival(), 
								  tid.forskjell_datoer(temp->getArrival(), newDate)) );

						temp->setDeparture(newDate);
						cout << "\nNotice: Departure date has been updated.\n"; cin.get();
						break;
					}
				}
			}
			else if(temp->getInUse() == 1)
			{
				cout << "\nAvailable choices:";
				cout << "\n\t 1) Change departure date";
				cout << "\n\t Q) QUIT";

				userCommand = readCommand();
			}
			else
			{
				cout << "Error: Can't change arrival date. This person has already checked in.\n";
				cout << "Press any key to continue"; cin.get();
			}
		}