in 18 days stop motor loop!

i use this code to rotate a motor

//2-Way motor control


int motorPin1 =  5;    // One motor wire connected to digital pin 5
int motorPin2 =  6;    // One motor wire connected to digital pin 6


int sixHours = 21600;
boolean changeRotation = false;
boolean oneTime = true;
unsigned long previousMillis = 0;
unsigned long currentMillis = 0;


// The setup() method runs once, when the sketch starts


void setup()  
 {                
  // initialize the digital pins as an output:
  pinMode(motorPin1, OUTPUT); 
  pinMode(motorPin2, OUTPUT);     
}



void loop()                     
{
  currentMillis = millis();
  if((unsigned long) (currentMillis - previouwMillis) >= sixHours 
  {
      changeRotation = !changeRotation ;       
      previousMillis = currentMillis;             
  }  

  if((changeRotation == true) && (oneTime == true))
  {
      rotateLeft(1500, 100000); 
      oneTime = false;//
  }
  else if((changeRotation == false) && (oneTime == false)) 
  {
      rotateRight(1500, 100000);
      oneTime = true; 
   }


}
void rotateLeft(int speedOfRotate, int length)
{
  analogWrite(motorPin1, speedOfRotate); //rotates motor
  digitalWrite(motorPin2, LOW);    // set the Pin motorPin2 LOW
  delay(length); //waits
  digitalWrite(motorPin1, LOW);    // set the Pin motorPin1 LOW
}


void rotateRight(int speedOfRotate, int length)
{
  analogWrite(motorPin2, speedOfRotate); //rotates motor
  digitalWrite(motorPin1, LOW);    // set the Pin motorPin1 LOW
  delay(length); //waits
  digitalWrite(motorPin2, LOW);    // set the Pin motorPin2 LOW
}

any help how to stop the loop : 1 555 200 000 milliseconds = 18 days

Moderator edit: quote tags swapped for CODE TAGS. I'm really getting bored with this now.

18UL * 24 UL * 60UL * 60UL * 1000UL fits easily in an unsigned long.

If you need exact timing, you'll need an RTC.