lil help please

OK I think I got it yay.. here's what I did.
pin 5,6,7 come on same time
5 runs 3min.
6 runs 7min.
7 runs 9 min.
then it breaks out of the loop and
turns pin 4 on and the whole loops and starts over.
This is not exactly what I want, but it is the Idea for what I'm trying to do.
Hope its right

#define seconds_in_ms(s) ((s)*1000UL)
#define minutes_in_ms(m) ((m)*60UL*1000UL)
#define hours_in_ms(h)   ((h)*60UL*60UL*1000UL)
#define days_in_ms(d)    ((d)*24UL*60UL*60UL*1000UL)
#define weeks_in_ms(w)   ((w)*7UL*24UL*60UL*60UL*1000UL)

boolean x = true;

void setup() {
    
   
   pinMode(2, OUTPUT);   
   pinMode(3, OUTPUT);  
   pinMode(4, OUTPUT);  
   pinMode(5, OUTPUT); 
   pinMode(6, OUTPUT);   
   pinMode(7, OUTPUT);  

  digitalWrite(2, LOW);   
  digitalWrite(3, LOW);  
  digitalWrite(4, LOW);  
  digitalWrite(5, LOW);  
  digitalWrite(6, LOW);  
  digitalWrite(7, LOW);  
 
  
}
void loop ()
{
  digitalWrite(5, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH);
  unsigned long Task1Time = millis();
  while(x){
 
  if (Task1Time >= minutes_in_ms(3)){
   digitalWrite(5, LOW); 
    
}
  if (Task1Time >= minutes_in_ms(7)){
     digitalWrite(6, LOW); 
}
  if (Task1Time >= minutes_in_ms(9)){
     digitalWrite(7, LOW);
      x = false; 
}
}
  digitalWrite(4, HIGH); //not really but a whole bunch other code goes here before it all loops
 
}