[LEAPSECS] presentations from AAS Future of Time sessions

Joseph Gwinn joegwinn at comcast.net
Sat Jan 11 11:32:06 EST 2014


On Fri, 10 Jan 2014 21:35:25 -0700, Warner Losh wrote:

>

> On Jan 10, 2014, at 8:35 PM, Skip Newhall wrote:

>

>> 'Proscribe’ and 'prescribe' are distinct words:

>>

>> 'Proscribe' means to forbid, disallow, or prohibit. “School rules

>> proscribe the use of pencils on exams.”

>>

>> 'Prescribe' means to lay out specifications or rules about

>> something. "In the manner prescribed by law.”

>>

>> I don’t know the context of the sentence the Magnus refers to.

>

> Prescribe is the word I intended. POSIX mandates, requires,

> prescribes that time is UTC.


No. While POSIX broken-down time resembles UTC, the underlying
timescale (Seconds since the Epoch) is *not* UTC, in that every day
contains exactly 60*60*24= 86,400 seconds. Leap seconds are *not*
applied.

The confusion arises because the POSIX Epoch is defined using UTC. But
the progression rule is a form of TAI (with unknown but constant
offset). POSIX background information follows.


URL of index page: <http://pubs.opengroup.org/onlinepubs/009695399/>


From POSIX Base Definitions volume:

3.149 Epoch
The time zero hours, zero minutes, zero seconds, on January 1, 1970
Coordinated Universal Time (UTC).


From the General Concepts volume:

4.14 Seconds Since the Epoch
A value that approximates the number of seconds that have elapsed since
the Epoch. A Coordinated Universal Time name (specified in terms of
seconds (tm_sec), minutes (tm_min), hours (tm_hour), days since January
1 of the year (tm_yday), and calendar year minus 1900 (tm_year)) is
related to a time represented as seconds since the Epoch, according to
the expression below.

If the year is <1970 or the value is negative, the relationship is
undefined. If the year is >=1970 and the value is non-negative, the
value is related to a Coordinated Universal Time name according to the
C-language expression, where tm_sec, tm_min, tm_hour, tm_yday, and
tm_year are all integer types:

tm_sec + tm_min*60 + tm_hour*3600 + tm_yday*86400 +
(tm_year-70)*31536000 + ((tm_year-69)/4)*86400 -
((tm_year-1)/100)*86400 + ((tm_year+299)/400)*86400

The relationship between the actual time of day and the current value
for seconds since the Epoch is unspecified.
How any changes to the value of seconds since the Epoch are made to
align to a desired relationship with the current actual time is
implementation-defined. As represented in seconds since the Epoch, each
and every day shall be accounted for by exactly 86400 seconds.

Note:
The last three terms of the expression add in a day for each year that
follows a leap year starting with the first leap year since the Epoch.
The first term adds a day every 4 years starting in 1973, the second
subtracts a day back out every 100 years starting in 2001, and the
third adds a day back in every 400 years starting in 2001. The
divisions in the formula are integer divisions; that is, the remainder
is discarded leaving only the integer quotient.


History: <http://en.wikipedia.org/wiki/Unix_time>

Joe Gwinn


More information about the LEAPSECS mailing list