PaulS:
There was a long thread a while ago that explained why subtraction involving unsigned variables was guaranteed to work. You could try to find that thread, if you are interested in why it works.But, think about your watch. It rolls over every 12 hours. If you had lunch at 11:30, you don't have any trouble determining that, at 1:30, it's been two hours since you've eaten, even though then (1130) is larger than now (130). The Arduino doesn't either.
I got it now. Since unsigned dosnt handle negative number the propper intervall remains. Its easilly verified with this:
unsigned long MyValue = 4294967290; // 5 under max amount
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println(millis()-MyValue);
delay(1000);
}