TL;DR - How can I calculate the hours of sunlight a spot on a planet gets when I know its location, time of year, and altitude? How would having objects in the way affect these values?
I am currently writing a sci-fi short story where the people live in very tall cities, separated into 4 vertical areas. Being the geek I am, I want to make my story as scientifically accurate as possible using modern knowledge of physics. The city is supposed to be a dystopic version of Houston, but with more skyscrapers-like buildings. If the average height of these buildings were 50 stories and they were packed close together, how would that affect what parts of the buildings would get sunlight and for how long. I know this is a lot of generalized data, but I don't need exact time estimates either.
The idea I'm going for here is that there are two races - one human, one alien. The aliens have taken over earth to harvest its resources, but decided to keep humanity around so they pushed them into a few dozen megacities. Each megacity is composed of a lower, middle, and upper ring, with higher rings pertaining to wealthier individuals - getting more sunlight over a day. The aliens would then live on floating islands above the humanity rings, and being at a higher altitude than ground level, would get much more sunlight than usual (16-17 hours a day). Is this at all feasible?