Menu

Before the age of the connectivity, computers were set to the local time of their operators. When the local time zone would change between Standard Time and Daylight Savings Time, either the computer's clock was changed on the fly (on systems that allowed it), or the computer was shut down then the clock was adjusted during reboot. This caused problems when computer systems became connected to the outside world for the following reasons:
+-----------+ +-----------+
| Stratum 1 | Optional | Stratum 1 |
| +---------------+ |
| Source A | Peer | Source B |
+-----------+ Connection +-----------+
/ \ / \ <--- client
+-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+ server
| Stratum 2 | | Stratum 2 | | Stratum 2 | | Stratum 2 | connections
| +-+ +-+ +-+ |
| Source C | | Source D | | Source E | | Source F |
+-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+
| | | |
| | Other organizations connect here
| |
+-----+-----+ +-----+-----+
| Stratum 3 | | Stratum 3 |
| +-+ | <--- Your mainframes and/or
| Source G | | Source H | firewalls go here
+-----+-----+ +-----+-----+
| X |
+-----+-----+ +-----+-----+ +-----------+ +-----------+
| Stratum 4 | | Stratum 4 | | Stratum 4 | | Stratum 4 | Your
| +-+ +-+ +-+ | mini computers
| Source I | | Source J | | Source K | | Source L | go here
+-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+
| X |
+-----+-----+ +-----+-----+ +-----------+ +-----------+
| Stratum 5 | | Stratum 5 | | Stratum 5 | | Stratum 5 | Your work stations
| +-+ +-+ +-+ | and/or PCs
| Source M | | Source N | | Source O | | Source P | go here
+-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+
Diagram Notes:Info derived from P.254 of:TOY Clock Notes:
Version 4.4 VAX/VMS Internals and Data Structures
(c) 1988 by Digital Equipment Corporation.
TIMEKEEPING in VAX/VMS
TOYCPR Time Of Year Clock In Processor Register TOYCC Time Of Year Clock In Console WC Watch Chip BB Battery Backup
Processor TOYCC? TOYCPR? WC? MicroVAX I N N N MicroVAX II N N Y +BB VAX-11/730 N Y opt BB N VAX-11/750
VAX-11/780-782-785
VAX-8600-8650N Y +BB N VAX-8200
VAX-8300N Y Y +BB VAX-8500-8550
VAX-8700
VAX-8800Y +BB N N
Info derived from P.255-256 of:When a non VAXcluster VAX/VMS system is booting, SYSINIT runs routine EXE$INIT_TODR to check the contents of the Time-Of-Year (TOY) Clock to see if it contains a value greater than hex $10000000.
Version 4.4 VAX/VMS Internals and Data Structures
(c) 1988 by Digital Equipment Corporation.
PRODUCTS: OpenVMS VAX, All Versions
OpenVMS Alpha, All Versions
VAX VMS, All Versions
COMPONENT: System Time
SOURCE: Digital Equipment Corporation
QUESTION:
Why is Wednesday, November 17, 1858 the base time for OpenVMS (VAX VMS)?
ANSWER:
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
Julius Caesar!).
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 computer
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 word).
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
tracking calculations.
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:
31-JUL-31086 02:48:05.47
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.
Click here to examine three popular calendars (two lunar, one solar)
Egypt
Ancient Egyptians began numbering their years when the Star
Sirius rose at the same place as the Sun. The Egyptian calendar was the first
solar calendar and contained 365 days. These were divided into twelve 30-day
months followed by five days of festival (Neugebauer 1969). From astronomical
calculations, Sirius and the Sun coincided in 4241 BC and 2773 BC, so either of
these could have served as Egyptian Year 1.
Greece - 440 BC
The calendar used by the ancient Greeks was based on the Moon,
and is known as the Metonic calendar. This calendar was based on the
observations of Meton of Athens (ca. 440 BC), who showed that 235 lunar months
made up almost exactly 19 solar years. This 19-year cycle became known as the
Metonic Cycle. However, given a
nominal twelve-month year, and additional lunar months needed to be added to
synchronize the cycle. These were added in years 3, 5, 8, 11, 13, 16, and 19 of
the cycle. (note: year gap sizes are: 2-3-3-2-3-3)
Greece - 325 BC
Around 325 BC,
Callippus modified the calendar by noting that
four 19-year Metonic cycles with 940 months were very close to 27,759 days. This
is called the Callipic Cycle.
Hipparchus noted that an even more accurate cycle (now called the
Hipparchic
Cycle) consisted of four Callipic Cycles less a day, in which ((4 x 27759)-1)
days were very nearly 3760 months. However, neither system was widely used. A
lunar-based calendar is still used by some religious sects to determine
holidays. Easter, for instance, generally occurs on the first Sunday following
the first Full Moon after the Vernal Equinox, although the actual scheme is a
bit more complicated still (Montes).
Rome - 753 BC
Ancient Rome's calendar was neither lunar or solar, it was
agricultural. It consisted of ten lunar months, beginning with the spring moon
in March and ending 304 days later in December. The period between December and
March was disregarded since no agricultural activity was possible during those
60 winter days. In keeping with an ancient custom, each month was divided into
three sections known as Kalends, Nones and Ides, each of different lengths. The
word Kalends, meaning a "calling" or announcement of a new month, gave us the
word calendar. The Nones was nine days before the Ides. Since this Romans used
inclusive counting, this day was always on the 5th or 7th of the month. The
start of the calendar was chosen every year so that the Ides (either the 13 or
15 day) of each month would always land on a full moon. Since this happens every
29.5 days, alternating between 30 day and 29 day months always kept the full
moon at the Ides.
Rome - 304 BC
Proposed by Numa Pompilius (reign 715-673 BC) but not published
until 304 BC (this date is in dispute), the number of months was increased from
ten to twelve by adding January and February.
(January comes from the two faced god who simultaneous looks ahead and back). The months were still lunar in
character, their lengths alternating between 29 and 30 days. This gave the year
354 days but as the total was an even number and to the Romans this was unlucky,
an extra 355th day was added at the end of the year. After being advised by his
astronomers that the extra 355th day would not be sufficient to agree with the
seasons which were important to both agriculture and military operations, Numa
inserted an additional thirteenth month every two years, calling it Mercedonius
(from the Latin word for wages, indicating that it meant extra remuneration).
This "remunerative" month of 22 or 23 days was arbitrarily thrust into the
calendar toward the end of February, after the 23rd, when the newly inserted
month began. When it was finished, the remaining five or six days of February
carried on. Of all the complicated man-made calendar adjustments in history,
this was certainly the most fantastic.
Rome - 45 BC
(the calendar moves to 365.25 days)
Proposed by Julius Caesar in 45 BC and slightly modified
thereafter by Caesar Augustus, this calendar agrees with the
Egyptian solar calendar and even implements a leap year (by adding an extra day
to February) every 4 years so the calendar is synchronized with the heavens
(sort of). The
months of Quintilis (fifth) and Sextilis (sixth) were renamed to July (after
Julius who was born in that month) and August (after Augustus). January was made
the first month so August would become the 8th month (because Augustus' given
name was Octavian).
Pseudo-Solar Calendar Before Julius Caesar
(requires a leap month every two years;
Februrary is smaller at this time
Martius (March ) Aprilis (April ) Maius (May ) Junius (June ) Quintilis (July ) Sextilis (August ) 7th month (September) 8th month (October ) 9th month (November ) 10th month (December ) 11th month (January ) 12th month (February ) Mercedonius (wages ) 31 days 29 days 31 days 29 days 31 days 29 days 29 days 31 days 29 days 29 days 29 days 28:23:24) (22-23) -------- 366 daysSolar Calendar After Julius Caesar
(requires a leap day in February)
Martius (March ) Aprilis (April ) Maius (May ) Junius (June ) Julius (July ) Augustus (August ) 9th month (September) 10th month (October ) 11th month (November ) 12th month (December ) 1st month (January ) 2nd month (February )31 days 30 days 31 days 30 days 31 days 31 days 30 days 31 days 30 days 31 days 31 days 1+ 28 days ----------- 365.25 days
Nicaea - 325 AD
Easter was originally linked to Passover, but in the year 325 AD,
the council at Nicaea (under the Roman emperor Constantine) decided that Easter would be celebrated on the first
Sunday following the first full moon, on or after the vernal equinox (the
passing from winter into spring). In the year 325, the vernal equinox was
assumed to be fixed at March 21.
Rome - 523 AD (years change from AUC to
AD)
At this time it was customary to count years since the founding
of Rome (ab urbe condita or AUC) and the church was using an Easter calculation
algorithm which was about to come to an end. In about AD 523, the papal
chancellor, Bonifatius, asked monk Dionysius Exiguus (Denis the Little) to
devise a new method to calculate Easter. Information from some sources
seems to indicate that
Dionysius was aware that a 532 year variation 1 of the
Metonic Cycle was conveniently restarted near the birth of
Christ. Since only pagan cultures celebrated birthdays, Dionysius Exiguus was
more concerned with the mathematical beauty of the
Metonic Cycle than determining the birth date of Jesus Christ. So his main
claim to fame was to change the numbering of years from AUC to a
date near the birth date of Jesus Christ (Anno Domini, "in the year of our
Lord") only for the purposes of publishing a new Easter algorithm.
Superscripts:Rome - 1582 AD (the calendar moves to 365.242193 days)
The variation of the Metonic Cycle works like this:
The beginning of this cycle falls on January 754 AUC which Dionysius renamed to 1 AD (anno domini, "year of our Lord").
- 19 years (the Metonic Cycle)
- 4 years (the Callipic Cycle helps to account for leap years)
- 7 days in a week (Easter must fall on a Sunday)
532 years = 19 x 4 x 7
- According to the Gospel of Luke (3:1 & 3:23) Jesus was "about thirty years old" shortly after "the fifteenth year of the reign of Tiberius Caesar". Tiberius became emperor in AD 14. If you combine these numbers you reach a birth year for Jesus that is strikingly close to the beginning of our year reckoning. This may have been the basis by Dionysius' argument.
- The Gospel of Matthew tells us that Jesus was born under the reign of king Herod the Great
Since he died in 4 BC. It is likely that Jesus was actually born between 5 BC and 7 BC.- The date of his birth is unknown but since shepherds were biding their flocks by night" it was probably mid September (coinciding with the feast of Tabernacles?) www.cgi.org/booklets/christmas.htm
- Today it is commonly believed that Dionysius made a mistake in determining the exact date of Christ's birth but this was not his intention. In 523 only pagans celebrated birthdays and these Christians had no intention of celebrating Christ's birth.
- Since this new calendar was only used to determine the annual date of Easter, it was not commonly adopted until the 10th century.
Easter was originally linked to Passover, but in the year 325 AD
at the council at Nicaea, it was decided that Easter would be celebrated on the
first Sunday following the first full moon on, or after, the vernal equinox (the
passing from winter into spring). In the year 325, the vernal equinox was
assumed to be fixed at March 21.
Due to inaccuracies in the calendar, by the 16th century the
vernal equinox was occurring on March 11. This caused problems for the church in
Rome because most Christians outside of Rome were using the date "March 21" to
calculate the day of Easter rather than the "vernal equinox" event. (sometimes
bad weather combined with a lack of local astronomers make the calendar option
the only choice). This had the effect of pushing the day of Easter celebration
closer to the summer months.
Pope Gregory XIII assigned the problem to a Jesuit astronomer named Christopher Schlussel (a.k.a. Clavius) who suggested that the Easter/equinox problem could be solved by removing 10 days from the current year but from that time forward the Christian world should adopt the idea proposed by Aloysius Lilius. The plan was approved by Pope Gregory approved the plan in 1582 and decreed that October 4 was followed by October 15. The peasants revolted thinking that their lives had been shortened by that much. The new calendar was named the Gregorian calendar after the pope who approved the changes.
This so-called "continental calendar" wasn't adopted by England,
or its colonies including America, until 1752. At that time, 11 days 2b
needed to be removed. (10 for the original correction, 1 for 1600, 0 for 1700)
Subscripts:
Year 2 Year 1 difference sec/year total seconds equiv days a 1582 AD 325 AD 1257 676 847218 09.805763889 a 1582 AD 1 AD 1581 676 1049784 12.15027778 a 1582 AD 44 BC 1624 676 1078336 12.48074074 b 1752 AD 325 AD 1427 676 961798 11.1319213
Fact: In 1989 a woman in who was born in 1884 was placed on a Kindergarten enrollment list because her 2-digit birthday (89) indicated that she was 5 years old.
Imagine the problems on January 1 2000 when automated programs...
Although most currently supported operating system software has been fixed, much application software, and low level firmware routines are still broken. Unsupported software (like MS-DOS) and obsolete firmware (like PC BIOS before 1995) will probably never be fixed. Furthermore, application software that makes direct BIOS calls to check the date instead of calling a similar routine in the operating system is at great risk since the application software will only fail on certain platforms.
If (for productivity reasons) your users only enter 2 digit years, programmers should translate these dates to 4 digits for storage. Failure to do this means this problem will be back in the year 2100.
Leap Year Rules Remark Description 1 Everyone knows... If a year is evenly divisible by 004, then that year is a leap year.
Using this rule, 2000 AD is a leap year.2 Many people know... If a year is evenly divisible by 100, then that year is not a leap year.
Using this rule, 2000 AD is not a leap year.3 Few people know... If a year is evenly divisible by 400, then that year is a leap year.
Using this rule, 2000 AD is a leap year.4 Proposed If a year is evenly divisible by 4000, then that year is not a leap year.
1. the most significant field (year) appears first while the least significant field (day) appears last.Here are a few examples for May 10th, 1997:
Similar to the odometer in your car.
2. By removing any slashes, everyone will automatically know which time format is being used. The lack of slashes will also allow the string to be used in computer file names. Some computer file systems (UNIX) will allow more than one period in the file name.
3. Leading zeros must always be used to pad fields (e.g.. month must be 05 not just 5)
970510 (should only be used on print outs)
19970510 (can also be used internally )
970510.2359 (should only be used on print outs)
19970510.2359 (can also be used internally )
970510.235959 (should only be used on print outs)
19970510.235959 (can also be used internally )
^
+--------- indicates a switch from date to time
Format #2:
970510:2359 (should only be used on print outs)
19970510:2359 (can also be used internally )
970510:235959 (should only be used on print outs)
19970510:235959 (can also be used internally )
970510:235959.10 (should only be used on print outs)
19970510:235959.10 (can also be used internally )
^ ^
| +--- indicates a switch to fractions of a second
+---------- indicates a switch from date to time
When numeric strings are used in naming data or log files, you
will find that sorted directories will be a little more ordered and that file
purges are a little safer since you can type:rm 199705* to delete all May 97 files in Unix del 199705*.* to delete all May 97 files in DOS del 199705*.*;* to delete all May 97 files in OpenVMS
Links:
7 days * 4 weeks = 28 days per month 28 days * 13 months = 364 days per year Since the length of a year is 365.24 days, the 13th month should have 29 days except on leap year when it should have 30.
With a standard 28 days per month it would be easier for businesses and governments to do monthly economic forecasts. Since western workers usually skip between 2-4 work days near the end of December (Christmas, Boxing Day, etc.), this month would be the best candidate to extend by one or two days.
The 13 month calendar would be better for Canadian bank employees who only get paid twice per month or landlords who only get paid once per month.
To add insult to injury, since those Y2K days many North American computer professionals have been let go and their jobs have been outsourced to India where people don't observe DST because they live so close to the equator. Oh well, just another mess linked to the effects of extreme market capitalism.
To the best of my knowledge, no RTC (real time clock) chips save the time zone. This means that just after a computer's local time has changed, a BIOS call must be made to save the new time to the RTC chip. Failure to do this means that a rebooted computer may come up with the wrong time. For the past 20 years most UNIX systems updated the RTC from root's crontab by calling /usr/sbin/rtc every morning in APRIL and OCTOBER like so.
To fix your system you'll need to implement one of the following two suggestions. If you don't know how to make these changes then you'll need to contact your local UNIX guru.% crontab -l # # This is root's crontab # The rtc command is run to adjust the real time clock if and when daylight savings time changes. # 10 3 * * 0,4 /etc/cron.d/logchecker 10 3 * * 0 /usr/lib/newsyslog 15 3 * * 0 /usr/lib/fs/nfs/nfsfind # run task every day in April at 3:01 AM 1 3 * 4 * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 # run task every day in October at 2:01 AM 1 2 * 10 * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 %
# # The two yellow lines above could be replaced with the following (suggestion #1 - preferred) # # run task every day at 3:01 AM 1 3 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1# # The two yellow lines above could be replaced with the following (suggestion #2 - alternate) # # run task every day in March + April at 3:01 1 3 * 3,4 * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 # run task every day in October + November at 2:01 1 2 * 10,11 * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1

Date + Time Formatting