< previous page page_15 next page >

Page 15
of the year. Thus, the date "19 August 1965" might be represented as "19-08-65" or "650819". The difficulty, of course, is that two digits can represent a maximum of one hundred years, assuming the use of standard decimal arithmetic. There are two implicit assumptions involved in this format:
A constant offset of 1900 can be added to the field to produce a complete four-digit year or subtracted from a complete year to produce the two-digit abbreviation.
Someone in the future will fix things before the first assumption becomes invalid and creates a problem.
The year A.D. 2000 is a problem, because the first assumption is no longer valid for that year. Like an odometer, the year field rolls over from "99" to "00," and the constant offset produces the year 1900, not the desired 2000. It is also a problem because, as the saying goes, "the future is now," and no one has fixed the problem, in violation of the second assumption.
All manner of difficulty springs from this simple glitch. Records sorted on dates in the YYMMDD format do not sort properly, because "000101" sorts before, not after,
Table 1.5 Naming conventions.
AbbreviationMeaning
DMYDaymonthyear, date format order.
DOWDay of week, Sunday through Saturday
DOYDay of year in the calendar. For solar calendars, this is a sequential count of days from 1 to 365 in common years.
DTDate, generally a DATE_INFO structure.
FRACFraction, meaning that part of a complete JD that is the fractional part, as opposed to the integer part.
HMSHoursminutesseconds, time format order.
JDJulian Day number, type double, including a possibly nonzero fractional part.
JD0Julian Day number, type double, the fractional part of which is, or is assumed to be, zero.
MDYMonthdayyear, date format order.
TMTime, generally a TIME_INFO structure.
YMDYearmonthday, date format order.
2"to" when conversions are performed.
4"for" where its use might be expected.

 
< previous page page_15 next page >