Variable times (eg. sunrise) done right.

Next thing to do: handle variable times spanning midnight.