MsTime2 Made Simpler?

I had some trouble with my wait periods so I started looking around. I read that delay() doesn't work very well when you go into second let along minutes.
I'm not a programmer so when I looked at the examples for using MsTime2, it went right over my head. Could you give me a better example of how to use it?
This is built from the basic example code on steppers and put into a function.

Other stuff
#include <MsTimer2.h>  //I just added this.
More stuff

int long delayBetweenStations = 1000 * 60 * 10;    // Doesn'T WORK? Time to wait before moving to next station 
                                                   // (1/1000 sec. times 60)=1 minute, times 10= 10 minutes?

// EXTENT, FEED AND CHANGE WATER 

void extendAndFeed(int timeForFoodPumping, int timeForWaterPumping) // Pumping times come from a small array. (Code left out)
  {
      
      if (timeForFoodPumping == 0 && timeForWaterPumping == 0) // If no pumping is assigned, skip to next tower
        {
        return;                                    // Go back, skip
        } 
        delay(100);                                // Wait a about second
         
     Serial.println("Stepper Two - Down - clockwize 100 steps");
     myStepperTwo.step(-100);                      // Drop feeding tube carriage downn into tower openning
     delay(100);                                   // Wait a about second
          
     digitalWrite(foodPumpMotorPin, HIGH);         // Turn on food pump
     delay(timeForFoodPumping);                    // Wait "timeForFoodPumping" amount of time
     digitalWrite(foodPumpMotorPin, LOW);          // Turn off food pump
     Serial.println(timeForFoodPumping);
     delay(1000);                                  // Wait a about second
     
     digitalWrite(waterPumpMotorPin, HIGH);        // Turn on water pump
     delay(timeForWaterPumping);                   // Wait "timeForWaterPumping" amount of time                
     digitalWrite(waterPumpMotorPin, LOW);         // Turn off water pump
     Serial.println(timeForWaterPumping);

     Serial.println("Stepper Two - UP - counterclockwise 100 steps");
     myStepperTwo.step(100);                       // Bring up feeding tube carriage from tower                     
     delay(delayBetweenStations);                  // This didn't work!

  } // End of Move To Station

Does it stop after 10 seconds? Try this sketch:

int long delayBetweenStations = 1000 * 60 * 10;    // Doesn'T WORK? Time to wait before moving to next station 

void setup () {
  Serial.begin (115200);
  Serial.println ();
  Serial.print (delayBetweenStations, DEC);
  Serial.println ();
  Serial.println ("begin");
  delay (delayBetweenStations);
  Serial.println ("end");
  
}

void loop () {}

Guess what that prints on the serial monitor? 10176. Not 600000. And it takes 10.176 seconds to go from "begin" to "end".

Why? Well, , numeric literals are considered ints, and ints are 16 bits. So, in hex: 10176 == 0x27C0.

And 600000 == 0x927C0.

So you have lost exactly 0x90000 == 589824 milliseconds.

The solution? Force it to be a long (literal) with an L:

long delayBetweenStations = 1000L * 60 * 10;

Oh, and I didn't need MsTime2.

Even though I'm about your age, I'll say:

DUDE! That is SO COOL. THANKS!

Yes, I got 10176 on the serial monitor and looked for a limit in the documentation but I guess that I didn't look in the right place. This will allow me to keep the code much simpler.

Thank you