idupree ([personal profile] idupree) wrote2012-07-27 08:31 pm
Entry tags:


(The canonical location of this blog post is now Time Measurement on my web site.)

Much software is based on the assumption that, given the moment X bajillion seconds from now, you will know how many times the earth will have turned since now, how many times the earth will have gone around the sun, and what date it will be.

Unfortunately, these assumptions are false.

Indeed, our very calendar is based on the assumption that the earth goes around the sun once for every 365.2425[1] days[2].

Fortunately, they're not very false. If you don't mind a few minutes of inaccuracy per century, you'd be fine, except that software is based on abstractions and a broken assumption anywhere might lead to a more-broken result somewhere else. We engineers try to build our systems out of components that are tolerant to each other's faults. Alas, being perfect is, at best, as hard as negotiating time between astronomers, physicists, and stock-brokers, and at worst as hard as negotiating time between the similar people who never even heard of the possibility that time could go at a different rate than one rotation of the earth for each 24 hours of 60 minutes of 60 ticks of the second-hand of their fairly decent modern wrist-watch[4].

[1] That's what the leap year rules make true, but for some reason this fact is not widely recognized in schools despite that they teach the 100-year and 400-year rules.

[2] For some meaning of day. Likely it means times the earth spins on its axis, or rather, periods between moments the sun is directly above a given point on the equator, (or rather, the earth is tilted on its axis so we must measure "directly above" only in the angle within the plane of the orbit of the earth around the sun); or perhaps it means 86400 seconds measured at mean sea level (General Relativity makes time pass differently in different gravitational fields; see Wikipedia on TAI), which is not quite accurate even for people who live on mean sea level because the speed of the earth's rotation changes for geologic reasons in a pattern that's hard for us to predict[3]. Our largely successful (albeit later discovered to be not quite perfect, as timekeeping and geology improved) decision to make every day of the year be the same duration has other poorly-noticed consequences for us every year: the shortest day is not the day with the latest sunrise (which occurs a couple of weeks later at my latitude), nor the day with the earliest sunset (which occurs a couple of weeks earlier at my latitude) (e.g. see).

[3] These geologic reasons are a much larger effect than your difference in experienced chronological age between living in the Dead Sea and living in an airplane, but your biological age is affected much more by your environment than by either of these effects, and governments, which only really care about your approximate age in years and about unchangeable identifying information, base your "age" upon a date of birth in the prevalent calendaring system of your birth-time and a present time in the prevailing timezone and chrono-political reign of your present location.

[4] If you have Daylight Savings Time, and a quartz-crystal watch like the $10 ones they sell at Wal-Mart, and reset your watch twice a year and don't worry too much when clocks are a minute off from each other, and are too young to remember the time before quartz watches were common (and too dead to remember the time before the mechanical chronometer was invented), then even your watch did not remind you that modern industrial time is imperfect.

If you have a cell-phone or computer keeping time, guess who taught the phone how to keep time? Someone who owned one of those watches. Well, it's better than that, a lot better, but we really take time for granted even though the second itself was only even invented within the last millenium.