Compute the astro seasons only once per occurrence
The previous code computed this four times per requested day, the new code does it four times per requested year. For small date ranges that makes little difference, if you query this for a whole year the speedup is very noticeable though.