Serial.print a duration

The value of millis() starts at 0 when the Arduino restarts and keeps counting up for about 49 days before it goes back to 0.

What you were doing is similar to adding 10 at 10am and adding another 12 at 12am (giving 22, for a silly example) whereas the time between 10am and 12am is 12 - 10 = 2 hrs.

When you run into this sort of problem with a computer program it is usually a good idea to print the "raw" data (in this case millis() ) as well as the calculated data so you can see how they relate to each other.

...R