Date: Thu, 22 Jun 2006 16:05:46 -0700
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Andy Gough <andrew.m.gough@INTEL.COM>
Organization: Majestic 12
Subject: Re: Why Jan 1, 1960?
Content-Type: text/plain; charset=us-ascii
rjf2@CDC.GOV ("Fehd, Ronald J. (CDC/CCHIS/NCHM)") wrote:
>> From: Paula Sims
>> Why is Jan 1, 1960 the starting point for the SAS date count?
>> What is the significance of that date?
>As any parent will tell you:
>"Because I said so, that's why? Now get!"
>That was the (year of the) Dawn of Computering.
>This is always a problem with scalars:
>"Where shall we put zero?"
>eventually it does not matter:
>today() - <some yesterday>
>yields an interval: in this case: number of days
>it does not matter where zero is on the scale,
>the difference is what counts.
>and this is always a problem when transporting data
>into other systems applications
>whose zero mark is set to a different year
>e.g.: SPSS zero is Jan 1, 1970
> (I may be wrong about that)
Then there's this:
PRODUCTS: OpenVMS VAX, All Versions
OpenVMS Alpha, All Versions
VAX VMS, All Versions
COMPONENT: System Time
SOURCE: Digital Equipment Corporation
Why is Wednesday, November 17, 1858 the base time for OpenVMS (VAX
November 17, 1858 is the base of the Modified Julian Day system.
The original Julian Day (JD) is used by astronomers and expressed in
days since noon January 1, 4713 B.C. This measure of time was
introduced by Joseph Scaliger in the 16th century. It is named in
honor of his father, Julius Caesar Scaliger (note that this Julian Day
is different from the Julian calendar named for the Roman Emperor
Why 4713 BC? Scaliger traced three time cycles and found that they
were all in the first year of their cyle in 4713 B.C. The three
cycles are 15, 19, and 28 years long. By multiplying these three
numbers (15 * 19 * 28 = 7980), he was able to represent any date from
4713 B.C. through 3267 A.D. The starting year was before any
historical event known to him. In fact, the Jewish calendar marks the
start of the world as 3761 B.C. Today his numbering scheme is still
used by astronomers to avoid the difficulties of converting the months
of different calendars in use during different eras.
So why 1858? The Julian Day 2,400,000 just happens to be November 17,
1858. The Modified Julian Day uses the following formula:
MJD = JD - 2,400,000.5
The .5 changed when the day starts. Astronomers had considered it
more convenient to have their day start at noon so that nighttime
observation times fall in the middle. But they changed to conform to
the commercial day.
The Modified Julian Day was adopted by the Smithsonian Astrophysical
Observatory (SAO) in 1957 for satellite tracking. SAO started
tracking satellites with an 8K (non-virtual) 36-bit IBM[R] 704
in 1957, when Sputnik was launched. The Julian day was 2,435,839 on
January 1, 1957. This is 11,225,377 in octal notation, which was too
big to fit into an 18-bit field (half of the IBM standard 36-bit
And, with only 8K of memory, no one wanted to waste the 14 bits left
over by keeping the Julian Day in its own 36-bit word. However, they
also needed to track hours and minutes, for which 18 bits gave enough
accuracy. So, they decided to keep the number of days in the left 18
bits and the hours and minutes in the right 18 bits of a word.
Eighteen bits would allow the Modified Julian Day (the SAO day) to
grow as large as 262,143 ((2 ** 18) - 1). From Nov. 17, 1858, this
allowed for seven centuries. Using only 17 bits, the date could
possibly grow only as large as 131,071, but this still covers 3
centuries, as well as leaving the possibility of representing negative
time. The year 1858 preceded the oldest star catalog in use at SAO,
which also avoided having to use negative time in any of the satellite
This base time of Nov. 17, 1858 has since been used by TOPS-10,
TOPS-20, and VAX VMS and OpenVMS. Given this base date, the 100
nanosecond granularity implemented within OpenVMS and the 63-bit
absolute time representation (the sign bit must be clear), OpenVMS
should have no trouble with time until:
At this time, all clocks and time-keeping operations in OpenVMS will
suddenly stop, as system time values go negative.
Note that the OpenVMS time display and manipulation routines allow for
only 4 digits in the 'YEAR' field. We expect this to be corrected in
a future release of OpenVMS sometime prior to 31-DEC-9999.
All views expressed are my own opinions, and not necessarily
those of Intel Corporation.
Andy Gough | Save a child! Support Fanconi Anemia
Chandler, AZ | research - http://www.fanconi.org
| "Knowledge is power." - Francis Bacon