Ciao,

L'applicazione che vuoi fare e' complessa, non impossibile, ma complessa. non hai niente in php di gia' precotto. lo devi fare tutto a manina.

Non devi determinare solo l'orario notturno, ma un calendario.

Calendario = annuale, nome_giorno, n. settimana, n. giorno.
Giorno = tipo di giorno (festivo, feriale, festivo_infrasettimanale, prefestivo).
Giorno-tipo = lunedi-feriale .... sabato.prefest domenica-festivo
Festivi-extra = festivita' infrasettimanali.
Orario_24 ore = per ogni ora, il tipo di ora. (diurna, notturna, serale, pausa.)
tipo Tariffa = diurna - valore1, notturna - valore2, festiva ecc.

Questo ti serve per avere un sistema flessibile, cioe' non su valori assoluti ma su valori configurabili nel tempo. Diversamente non ti sara' possibile l'attivita' automatizzata.

Individui il tipo di giorno, il tipo di ora ---> ricavi tipo tariffa oraria.
Conti le ore per tipo_di_ora e le moltiplichi per il tipo di tariffa. Sommi.. ecc.

In totale 5-6 tabelle. Ho esperienza in merito e ti posso dire che quanto ti ho suggerito e' il minimo. Sarebbe meglio avere anche uno schema di applicazione, dove sia possibile inserire molteplici schemi (per esempio a seconda del lavoratore o del cliente) con svariati tipi di orario e tariffe.

rimarra' per ogni anno da costruire il calendario nuovo e rifare la tabella dei giorni festivi non cadenti di sabato o domenica.

Da tener presente nel progetto che facilmente dovrai fornire statistiche su tipo di ora lavorate, settimanali,ecc.. In pratica per ogni conteggio andrebbero memorizzati oltre all'orario anche il giorno, il tipo di giorno, la tariffa applicata e altro. piu' cose ci saranno piu' dati potrai fornire.... tutto valore aggiunto...