We have leap years because the revolution on the Earth around the Sun is not exactly 365 days but about 6 hours off from that figure. If we did not have leap years, our calender would fall out of sync with the sky and we would eventually have Christmas in July.
My question is this: The Earth's rotation is actually about 4 minutes shy of 24 hours. Why doesn't our clock fall out of sync with the sun, that is, without having "leap minutes," would not the sun eventually be directly overhead at midnight?
That's a good question. The day is defined to be the time between one dawn (or noon) and the next' i.e., the day is defined with respect to the position of the Sun in the sky. Now, the earth revolves around the sun in the sky and so the time taken for the Sun to come to the same position in the sky is longer than the time taken for the Earth to rotate once around itself. You can convince yourself about this by drawing a picture of the Earth in orbit around the Sun and rotating around itself at the same time.
So, the Earth's rotation period is actually 4 minutes less than what we call as one day. As a result of this, the Sun's position in the sky at noon is roughly fixed, but the stars slowly drift apart. So, the stars which are overhead at midnight today will slowly move in the sky until they will be overhead at noon 6 months apart.
If instead we defined a day to be the time taken by the Earth to rotate round itself exactly once, then as you mention, the Sun will be overhead on some day at midnight.
This page was last updated June 28, 2015.