automatic greenhouse

Hello, I'm projecting a small greenhouse to grow plants during the winter. My problem is how can I write the code to controll the different output at the same time but with different time of action. for example I need to have "HIGH" on the lamp for 10 hours, but during this time I need to get "HIGH" on the ventilation pin 1 minutes every 5minutes. I write a code but I don't know if it's correct. I hope someone can help me, I'm a beginner.

//   COSTANTI  //
 #include "DHT.h"                                  //carico la libreria dht11
 #define DHTPIN 6                                  //definisco il pin del sensore
 #define DHTTYPE DHT11                             //definisco il tipo di sensore
 const int luce_Pin = 2;                           //costante luce al pin 2
 const int emissione_Pin = 3;                      //costante emissione al pin 3
 const int immissione_Pin = 4;                     //costante immissione al pin 4
 const int pompa_Pin = 5;                          //costante pompa al pin 5
 DHT dht(DHTPIN, DHTTYPE);
//    VARIABILI  //
 byte lucePinState = LOW;                          //
 byte emissionePinState = LOW;                     //
 byte immissionePinState = LOW;                    //
 unsigned long currentMilllis = 0;                 //
//  SETUP  //
void setup() {
  Serial.begin(9600);                              //setto la velocità di trasmissione dei dati a 9600 baud (bit/s)
  pinMode(luce_Pin, OUTPUT);                       //luce output
  pinMode(emissione_Pin, OUTPUT);                  //emissione aria output
  pinMode(immissione_Pin, OUTPUT);                 //immissione aria output
  pinMode(pompa_Pin, OUTPUT);                      //pompa output
  pinMode(6, INPUT);                               //DHT11 input
  } 
//  SETUP  //
void loop() {
  updatelucePinState();                            //dichiaro la funzione della luce
  updatemissionePinState();                        //dichiaro la funzione dell'estrattore
  updateventilazionePinState();                    //dichiaro la funzione dell'estrattore piu l'immettitore
  }
   
  void updatelucePinState() {                      //funzione del pin connesso alla luce
  digitalWrite(luce_Pin, HIGH);                    //accendi lampada
  delay(43200000);                                 //luce accesa 12 ore
  digitalWrite(luce_Pin, LOW);                     //spegni lampada
  delay(43200000);                                 //luce spenta 12 ore
  }
  
  void updatemissionePinState() {                  //funzione del pin connesso all'estrattore
  digitalWrite(emissione_Pin, HIGH);               //acccendi estrattore
  delay(30000);                                    //estrattore acceso 20secondi
  digitalWrite(emissione_Pin, LOW);                //spegni estrattore
  delay(240000);                                   //estrattore spento 3 minuti  
  }
  
  void updateventilazionePinState() {              //funzione del "kit ventilazione"
  int t = dht.readTemperature();                   //rileva la temperatura tramite il sensore dht11
  int h = dht.readHumidity();                      //rileva l'umidità tramite il sensore dht11
  if (t > 30) {                                    //se la temperatura è sopra 30° 
  digitalWrite(emissione_Pin, HIGH);               //accendi estrattore
  digitalWrite(immissione_Pin,HIGH);               //accendi immettitore
  }
  else if (t < 30) {                               //invece se la temperatura è minore di 30°
  digitalWrite(emissione_Pin, LOW);                //spegni estrattore
  digitalWrite(immissione_Pin, LOW);               //spegni immettitore
  }
  }

Welcome.
Look at the BWD "Blink Without Delay" example in the IDE.

Have you read Robin2's discussion?
http://forum.arduino.cc/index.php?topic=223286.0

.

Yes I read it, I wrote my code looking at the robin2's example, but I'm a beginner and I don't know if I really understand it.

I don't know if I really understand it.

You don't

 delay(43200000);  //do nothing for a very long time

Does Robin's code use delay() ?