On 2015-01-19 13:23, Peter Coghlan wrote:
After trying to get Unix v5 to understand dates
beyond the year 2000 I
had to wonder if any of the older operating systems from the 1970s or
older could do this.
So, did any operating system programmers from this time period have
the foresight to use 4 digits for the year? I just checked APL/360 and
it seems that it does not.
TOPS-20? VMS?
It was very near the end of the 1970s but VMS made a really good effort to
handle times and dates well from the beginning. A single 64 bit time format
is used throughout the operating system and operating system routines are
provided to manipulate it and convert to and from well chosen standardised
display formats with no ambiguities such as two digit years or easily mixed up
numbers for days and months. Everything [*] displays and accepts the same
time and date formats and shortcuts such as YESTERDAY, TODAY and TOMORROW.
No messing about trying to figure out what format a particular utility wants
the date specified in and no wondering whether a unitless time displayed by
something is days, hours or minutes.
Agreed. But VMS was released in 1977. Possibly realy 1978, so it wasn't
"very near the end of the 70s" I think.
The areas where I think it could have been done better
still are to have stored
the time internally in UTC rather than local time while displaying local time
and to have chosen an earlier base date than 17 November 1858. Also, there was
originally a rule that time differences could not be larger than 10000 days
which was poorly enforced and eventually had to be scrapped - this should have
been handled much more gracefully.
The local time problem is a serious miss that VMS did.
The 10000 day limit was a problem that hit the C runtime library, since
C programs like to, and expect code, to express time as an offset from
the epoch, which is Jan 1, 1970.
Of course, VMS used delta times for this, and that hit 10000 days a
little while ago, which barfed things up. I don't remember offhand
exactly what the solution looked like.
Nothing else normally ever had any issues with that limit, but I think
it was rather arbitrary, so I don't expect any programs had problems
with raising the limit either.
[*] A few system parameters are specified in seconds
and TIMEPROMPTWAIT is
specified in microfortnights with tongue in cheek.
:-)
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt at softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol