For a senior engineer like myself with decades of experience it is trivial to see how to fix this to make it much more readable.
1/ pick a sunny day
2/ at each hour, measure the bearing to the sun
3/ encode as a dict[str, float] e.g.
{“twelve”:180.00}
4/ sort the hours by dict.getVoila.
As an added bonus, for some reason this ends up sorting the minutes and seconds too. (“# wtf?!”)
For now, I was only able to fix the hours when I could see the sun (eleven, twelve, and two to eight — I don’t get up very early and I like lunch). Patches form the arctic circle welcome :P
I also need to tilt my head a bit as eleven is at the top instead of twelve. Other than that I would say it’s a considerable improvement on the OP’s rather naïve implementation! Scoff!