Per risponderti a domande di questo tipo guarda la
language reference di arduino.
Come puoi vedere esiste una funzione millis() che ritorna il numero di millisecondi trascorsi dall'inizio dell'esecuzione del tuo programma. Se conosci il numero di millisecondi trascorsi dall'inizio del giorno legale, chiamiamoli G, al momento di una chiamata di millis(), che poniamo restituisca valore V, allora in ogni momento il numero di millisecondi trascorsi a partire dall'inizio del giorno legale corrente è (G + millis() - V) mod (24 * 60 * 60 * 1000); in questo modo sai quando un giorno comincia/termina e quindi sai quando far partire e terminare le sessioni di misura.
Il modo di ottenere G varia da progetto a progetto, ad esempio puoi scrivere un programma di acquisizione dell'ora in formato HH:MM:SS usando un display e 2/3 pulsanti.