Hai un buco tra le 21 e le 22, devi metterci un tappo :-)
E per correttezza dovresti verificare gli operatori negli orari di transizione: ad esempio se "buonanotte" è per orario <= 6, non usare >= 6 per "buongiorno" ma solo >6...