# The Millennium began with the Year 2000

### There is an error at the beginning of the calendar

When the new millennium approached, people awaited the year 2000, except for those few that insist that the new millennium begins in the year 2001. Their reasoning is that the first hundred years are numbered 1 through 100, the second hundred years are numbered 101 through 200, and so forth, so that the twentieth century goes from 1901 to 2000, and the twenty-first century does not start until 2001 January 1.

I say instead that it began on 2000 January 1, and have several different ways of looking at this:

1. Time is Continuous
2. The problem with regarding 2001 January 1 as the start of the New Millennium stems from the beginning of the calendar. The first year is called 1, or 1 ACE (or AD). It may seem natural to call the first year the year 1, and indeed it may make sense if years were like books which are numbered 1, 2, ... There is no fraction of a book to be concerned about. However, with years, there are fractions of a year: months, hours, milliseconds and so forth. Time is measured on a line, not on a series of discrete points. The starting place on a line is not 1. It is 0. Therefore, the starting point on the time line should be called 0, not 1.

3. The Calendar starts with the Year 0
4. It is this failure to recognize that 0 is the origin on a line rather than 1 that causes several problems with our numbering schemes. The Romans did not have a zero; their zeroless Roman numerals hampered the development of Roman mathematics, for they needed a different symbol (C, X, I) for each tens place because otherwise "I" could mean one, ten, or a hundred. It was not until the Arabic notion of zero and of putting a zero in a place that does not hold anything came to the Western world before it could advance technologically. Then a hundred became 100.

However, the BC and AD systems were set up before this happened. As a result, there is no year 0 in the traditional system. The year 1 BC is followed by 1 AD. This does not make sense, since -1 and 1 are not adjacent numbers; 0 is between them. Logically, our calendar should start with the year 0 (what we usually call 1 BC). It should start on 0 January 1 at the start of midnight.

If one starts our calendar with the year 0, then the first century is 0-99; the second one is 100-199, and so forth. The twentieth century is then 1900-1999. The present year 1999 is the two-thousandth year of the Common Era. It is true that the new millennium starts with the 2001st year, but that year is not 2001; it is 2000. So the new millennium begins with the year 2000.

5. How Old Are You?
6. It helps to look at your own life. When you were born, you were not 1 year old, were you? You had to wait a year until you were 1. You were in the first year of your life, but that did not mean you were 1 year old. I started the second half-century of my life when I turned 50, not when I turned 51. At that time, the earth had revolved around the sun exactly 50 times.

Likewise, the calendar completes two thousand years of time on the midnight between 1999 December 31 and 2000 January 1.

7. Computer Programmers
8. There is a way of characterizing people by programming languages depending on when they consider the millennium to begin and whether they assume a year 0. They are:

1. If you say that there is no year 0 and that the millennium begins in 2000, then you're a "short-changer".
2. If you say that there is no year 0 and that the millennium begins in 2001, then you're a FORTRAN programmer.
3. If you say that there is a year 0 and that the millennium begins in 2001, then you're a BASIC programmer.
4. If you say that there is a year 0 and that the millennium begins in 2000, then you're a C, C++, C#, or Java programmer, or a mathematical logician.

This is in analogy with the way these languages treat arrays (and the sequence of years can be considered to be an array), as in the following:

##### FORTRAN
```	 DIMENSION YEAR(2000)
C	 YEAR(1) and YEAR(2000) are valid. YEAR(0) is not valid.
C   YEAR(2000) is the first two millennia. The third millennium starts with YEAR(2001).
```
##### BASIC
```	 Dim Year(2000)
Rem Year(0) and Year(2000) both make sense. This Dim statement defines 2001 values.
Rem The next year after this array is 2001, which is when the third millennium begins.
```
##### C, C++, C#, or Java (Don't use any object-oriented features)
```	   int year[2000];
//  year is defined from year[0] to year[1999]. If you use year[2000] you may bomb your computer.
//  The next millennium starts with year[2000] which requires additional dimensioning
//  to make valid. ```

The C, C++, C#, and Java version seems naturally the best (see "Ordinal Number argument below"). That corresponds to there being a year 0 and to 2000 being the start of the Next Millennium.

9. Ordinal Number argument
10. In set theory, in transfinite ordinal theory, each (ordinal) number is defined to be the set of all the previous ones. Thus 5 = {0,1,2,3,4}. That defines the finite numbers. The set of ALL the finite numbers is w, the first transfinite or infinite number. The set {0,1,2,3...,w} is then w + 1, and then comes w + 2, ..., w2, ... Now certainly the first infinite number is NOT w + 1. It is w, even though all its elements are finite. So in the same way, 2000 is the first year of the new millennium. 2000 is the set MM of all numbers with three digits or less or with four digits where the first one is a 1. Just as w is not a finite number, so 2000 is not in MM, which represents the first two millennia. So 2000 is in the Third Millennium.

Most places celebrated the new millennium on 1999 December 31/2000 January 1. In fact, most of the good places were booked for this evening years in advance (that is, until the travel industry hype and prices drove people away). There were numerous openings for cruises, hotels, and parties on 2000 December 31. The biggest displays were on the night of 1999 December 31.

Jim Blowers
Revised on 2000 January 7, just 7 days after the New Millennium began.
Revised again on 2003 December 27.