/*
Instructions

Lucian's girlfriend is on her way home and he hasn't cooked their anniversary dinner!

In this exercise, you're going to write some code to help Lucian
cook an exquisite lasagna from his favorite cookbook.

You have four tasks, all related to the time spent cooking the lasagna.

    1. Define the expected oven time in minutes

    Define the ovenTime() function that does not take any arguments
    and returns how many minutes the lasagna should be in the oven.
    According to the cookbook, the expected oven time is 40 minutes:

    ovenTime();
    // => 40

    2. Calculate the remaining oven time in minutes

    Define the remainingOvenTime(int actualMinutesInOven) function that takes
    the actual minutes the lasagna has been in the oven as an argument and
    returns how many minutes the lasagna still has to remain in the oven,
    based on the expected oven time in minutes from the previous task.

    remainingOvenTime(30);
    // => 10

    3. Calculate the preparation time in minutes

    Define the preparationTime(int numberOfLayers) function that takes the number
    of layers you added to the lasagna as an argument and returns how many minutes
    you spent preparing the lasagna, assuming each layer takes you 2 minutes to prepare.

    preparationTime(2);
    // => 4

    4. Calculate the elapsed time in minutes

    Define the elapsedTime(int numberOfLayers, int actualMinutesInOven) function
    that takes two arguments:
    - first argument is number of layers you added to the lasagna
    - second argument is number of minutes the lasagna has been in the oven
    The function should return how many minutes you've worked on cooking the lasagna,
    which is the sum of the preparation time in minutes,
    and the time in minutes the lasagna has spent in the oven at the moment.

    elapsedTime(3, 20);
    // => 26
*/

// ovenTime returns the amount in minutes that the lasagna should stay in the
// oven.
int ovenTime() {
    return 40;
}

/* remainingOvenTime returns the remaining
   minutes based on the actual minutes already in the oven.
*/
int remainingOvenTime(int actualMinutesInOven) {
    return ovenTime() - actualMinutesInOven;
}

/* preparationTime returns an estimate of the preparation time based on the
   number of layers and the necessary time per layer.
*/
int preparationTime(int numberOfLayers) {
    return 2 * numberOfLayers;
}

// elapsedTime calculates the total time spent to create and bake the lasagna so
// far.
int elapsedTime(int numberOfLayers, int actualMinutesInOven) {
    return preparationTime(numberOfLayers) + actualMinutesInOven;
}
