Explain this too:
if (hour >= startHour && hour < endHour && minute == 30 && second == 0 || halfHourStrike)