
Ketil Malde wrote:
Seth Kurtzberg
writes: Yes, because TAI is a clock, not a calendar. We are getting bogged down in the terminology here. I've tried -- but am happy to try again -- to propose:
clock : something that measures the passage of time, unit is seconds
calendar: something that deals with the passage of time with other units -- hours, minutes, years, dates
I believe this discussion is continually bogged down in terminology :-) Here is how think of it. clock: measures passage of absolute time (time difference). Best available unit is (TAI) SI seconds (ie. cesium atom oscillations) calendar: gives time *stamps* to human related notion of time. Can be used to calculate calendar time differences, ie. human notions of time difference, like days and months, and yes, *calendar* seconds (ie. not absolute SI seconds). TAI is a clock. Sometimes they give it as date, but really, it is just SI-seconds since some epoch (specified as an UTC calendar date!) UTC is a calendar. UTC is a special calendar because its normal seconds are specified by an absolute time duration: a UTC second is a SI second. The strange thing about UTC is that days (and months etc) are defined with respect to the rotation of the earth. Therefore, a day does not always have 84600 UTC seconds, but sometimes one more or less (= leap seconds). Which days have a second more or less is defined by a leap table (which is undefined for the future). This means that, like any calendar, you can calculate UTC date differences in days and months, but not in seconds (unless you happen to know the leap seconds). Furthermore, you can not use UTC seconds as time durations, as there are sometimes leap second insertions/deletions (that last 0 SI-seconds). Now what I understand about implementation: - gettimeofday() returns the number of seconds since epoch (a UTC date) What kind of seconds does it return? Well, (A) sometimes these are just SI-seconds (which means we can derive TAI from that), but sometimes (B) it returns UTC-seconds -- ie. the absolute SI-second count, plus/minus any leap seconds that have occurred. Is there anyone on this list who can give a solid overview of what "gettimeofday" returns, and if we can distinguish (A) from (B)? I guess some/most of this is already said on this list, but it seems somewhat hidden in the posts and clouded by misinformation :-) I know that libtai assumes (A) which is wrong in general. All the best, -- Daan.