How to keep the time of a working led?

Hello,

I am doing a school project. One of the parts is liting up a led with one button and shutting it down with another button. I have done that part. Now we need to activate a buzzer (Piezo Buzzer) when the let is burning for 5 minutes.
So in just broke English:

if LedOn == 300000

=> start Piezo buzzer

else

=> do nothing

I have been looking for different functions and libraries to use, but none of them had what I am searching for. I have tried the Chronos library but it gave nothing. I am still a noob. Can somebody help me out?

Thanks in advance

Code for the led with the buttons

// definieer Led en toetsen
const int led = A1;
const int aanToets = A0;
const int uitToets = A2;

// definieer boolse waardes om de status van het systeem te traceren
boolean laatsteToets1 = LOW;
boolean stroomToets1 = LOW;
boolean laatsteToets2 = HIGH;
boolean stroomToets2 = HIGH;
boolean ledAan = false;


void setup () 
{
pinMode(A1, OUTPUT);
digitalWrite(A1, HIGH);
pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH);
pinMode(A2, OUTPUT);
digitalWrite(A2, HIGH);

Serial.begin(9600);

 // toetsen als inputs en led als output
  pinMode(led, OUTPUT);
  pinMode(aanToets, INPUT);
  pinMode(uitToets, INPUT);
}

// debouncer voor de aanToets
boolean debounce1(boolean laatste) // laatste status van de toets
{
  boolean stroom1 = digitalRead(aanToets); // bepaal de stroomwaarde van de toets, de waarde stroom wordt gezet op de waarde die wordt gelezen bij de input van de aanToets
  if(laatste != stroom1) // vergelijk laatste met stroom1
  {
    delay(5); // de toets krijgt genoeg tijd om te debouncen, maar het is nog steeds sneller dan wij onze vinger op de knop kunnen bewegen
    stroom1 = digitalRead(aanToets); // lees de waarde stroom1 opnieuw uit
  }
  return stroom1; // geef de waarde stroom1 terug
}

// debouncer voor de uitToets
boolean debounce2(boolean laatste) // laatste status van de toets
{
  boolean stroom2 = digitalRead(uitToets); // bepaal de stroomwaarde van de toets, de waarde stroom wordt gezet op de waarde die wordt gelezen bij de input van de uitToets
  if(laatste != stroom2) // vergelijk laatste met stroom2
  {
    delay(5); // de toets krijgt genoeg tijd om te debouncen, maar het is nog steeds sneller dan wij onze vinger op de knop kunnen bewegen
    stroom2 = digitalRead(uitToets); // lees de waarde stroom2 opnieuw uit
  }
  return stroom2; // geef de waarde stroom2 terug
}


void loop () 
{
    // run de debounce1 functie en geef deze mee aan stroomToets1
  stroomToets1 = debounce1(laatsteToets1);

  if(laatsteToets1 == LOW && stroomToets1 == HIGH){ // iemand drukte op de toets
    ledAan = !ledAan; // inverteer de waarde van ledAan
  } 
    laatsteToets1 = stroomToets1; // zet de waarde laatsteToets1 naar de gepaste waarde (stroomToets1)

    // run de debounce2 functie en geef deze mee aan stroomToets2
    stroomToets2 = debounce2(laatsteToets2);

  if(laatsteToets2 == LOW && stroomToets2 == HIGH){ // iemand drukte op de toets
    ledAan = !ledAan; // inverteer de waarde van ledAan
  } 
    laatsteToets2 = stroomToets2; // zet de waarde laatsteToets2 naar de gepaste waarde (stroomToets2)

    
    digitalWrite(led, ledAan); // led gaat aan
}

code for the buzzer I have so far

// definieer buzzer
const int buzzer = 9;
void setup() {
  // put your setup code here, to run once:
 // code voor de buzzer

 pinMode(buzzer, OUTPUT); // De buzzer wordt geset als OUTPUT
}

void loop() {
  // put your main code here, to run repeatedly:
 // code voor de buzzer

  tone(buzzer, 1000); // Stuur 1KHz geluidssignaal
  delay(1000);        // duurt 1 seconde
}

Some reading for you:

https://forum.arduino.cc/index.php?topic=503368.0

You need millis(). The link from dougp should get you started.