Aiuto con millis

ziopippo:
Grazie ad entrambi per la risposta.

@ORSO2001, la parte logica della programmazione l'avevo abbastanza chiara in mente, il mio problema è che scrivendo il codice poi non faceva quello che volevo; Probabilmente pechè ho usato sia per la void allarm() che per quella snooz le stesse variabili previousMillis e currentMillis ad esclusione di noteDuration e snoozeDuration.
Scritto così se premo un tasto il buzzer si silenzia solo per qualche secondo a prescindere del tempo impostato a snoozeDuration e, non ne capisco il motivo! Con il delay invece tutto funziona correttamente però poi si ibena tutto e non mi va bene

Hai ragione, serve una variabile previous millis per ogni timer