Algorithm for checking hour periods
As @D.W. is suggesting, you can use the binary search technique which takes $O(\log n)$ time, where $n$ is the number of elements in the list.
Furthermore, if you want to know the corresponding period, there are many ways to it.
For example, You can make a separate array of periods and then perform a binary search on it.

Furthermore, you can improve the query time to $O(1)$ by maintaining an array of size 1440 = 24x60 as follows:
The $i^{th}$ entry of the array corresponds to the time $a:b$ where $a = i /60$ and $b = i \mod 60$. And, the value at $i^{th}$ entry is $1$ if time $a:b$ is in the list else it is $0$. Therefore, you can check in $O(1)$ time if an entry exist in the array.
To know the period in $O(1)$ time, you can maintain additional information in the array about the period in which the time lies. For example: an $i^{th}$ entry lies in $2^{nd}$ period. So basically it would be a two-dimensional array.