# CALENDAR_NYT The New York Times "Calendar"

CALENDAR_NYT is a FORTRAN90 library which attempts to determine the date, given the volume and issue number of an edition of the New York Times, or vice versa.

You might think that all that is required is to figure out the first date of issue, and then count the number of days that have elapsed from then to the date of interest, to get the issue number. That's why I thought too, but it's not that simple by any means!

The routines YMD_TO_NYT and JED_TO_NYT are fairly trustworthy. The first routine immediately refers to the second, which has been compared to a sample of issue numbers of all the front pages issued in a recent commemorative book. The actual details of how the issue number was occasionally garbled, held back, or incremented involve about 30 corrections to the simplistic idea of counting the number of days from the first issue.

The "inverse" routines NYT_TO_JED and NYT_TO_YMD work from about 1905 onwards, after which there were only two disruptions to the simple issue incrementing. Before that time, the formula has not been "educated" about the various irregularities in the issue numbering system.

The routine JED_TO_NYT_ISSUE_IDEAL assigns to each successive issue of the New York Times a unique identifier, namely, its sequence number. This is what the nominal issue number was supposed to do. Using this function, we can see that the actual number of issues of the New York Times printed from the beginning up to 1 April 2008 was not 54,267, (the nominal issue number) but instead 56,570!

### Languages:

CALENDAR_NYT is available in a FORTRAN90 version and a MATLAB version.

### Related Data and Programs:

CALENDAR_RD, a C++ program which computes the representation of a given date in a number of calendrical systems, by Edward Reingold and Nachum Dershowitz

CALPAK, a FORTRAN90 library which converts between dates as computed on various calendars.

DATES, a dataset directory which contains lists of dates in various calendar systems.

DOOMSDAY, a FORTRAN90 library which is given the year, month and day of a date, and uses John Conway's doomsday algorithm to determine the corresponding day of the week.

WEEKDAY, a FORTRAN90 library which determines the day of the week for a given day.

### Reference:

1. Anonymous,
A Correction; Welcome to 51,254,
The New York Times,
01 January 2000, Volume 149, Issue 51254.
2. James Barron,
What's in a Number? 143 Years of News,
The New York Times,
14 March 1995, Volume 144, Issue 50000.
3. The New York Times,
Page One, 1896-1996, A Special Commemorative Edition Celebrating the 100th Anniversary of the Purchase of the New York Times by Adolph S Ochs,
ISBN: 0-88365-961-1,
LC: D411.P25.
4. The New York Times,
The Complete First Pages, 1851-2008,
Black Dog & Leventhal Publishers, 2008,
ISBN13: 978-1-57912-749-7,
LC: D351.N53.

### List of Routines:

• DAY_BORROW_COMMON borrows days from months in a Common date.
• DAY_BORROW_GREGORIAN borrows days from months in a Gregorian date.
• DAY_BORROW_JULIAN borrows days from months in a Julian date.
• DAY_CARRY_COMMON carries days to months in a Common date.
• DAY_CARRY_GREGORIAN carries days to months in a Gregorian date.
• DAY_CARRY_JULIAN carries days to months in a Julian date.
• DEFLATE_COMMON "deflates" dates in the Common Calendar transition month.
• DIGIT_TO_CH returns the character representation of a decimal digit.
• EPOCH_TO_JED_NYT returns the epoch of the NYT calendar as a JED.
• FRAC_BORROW_COMMON borrows fractions from days in a Common YMDF date.
• FRAC_BORROW_JULIAN borrows fractions from days in a Julian YMDF date.
• FRAC_CARRY_COMMON carries fractions to days in a Common YMDF date.
• FRAC_CARRY_JULIAN carries fractions from days in a Julian YMDF date.
• FRAC_TO_S writes a positive fraction into a left justified character string.
• I4_MODP returns the positive remainder when I is divided by J.
• I4_TO_S_LEFT converts an integer to a left-justified string.
• I4_TO_S_ZERO converts an integer to a string, with zero padding.
• INFLATE_COMMON "inflates" dates in the Common Calendar transition month.
• JED_TO_NYT converts a JED to an NYT date.
• JED_TO_NYT_ISSUE_IDEAL returns an ideal issue number for the New York Times.
• JED_TO_YMDF_COMMON converts a JED to a Common YMDF date.
• JED_TO_YMDF_GREGORIAN converts a JED to a Gregorian YMDF date.
• JED_TO_YMDF_JULIAN converts a JED to a Julian YMDF date.
• MONTH_BORROW_COMMON borrows a year of months on the Common calendar.
• MONTH_BORROW_GREGORIAN borrows a year of months on the Gregorian calendar.
• MONTH_BORROW_JULIAN borrows a year of months on the Julian calendar.
• MONTH_CARRY_COMMON carries a year of months on the Common calendar.
• MONTH_CARRY_GREGORIAN carries a year of months on the Gregorian calendar.
• MONTH_CARRY_JULIAN carries a year of months on the Julian calendar.
• MONTH_LENGTH_COMMON returns the number of days in a Common month.
• MONTH_LENGTH_GREGORIAN returns the number of days in a Gregorian month.
• MONTH_LENGTH_JULIAN returns the number of days in a Julian month.
• NOW_TO_JED expresses the current date as JED.
• NYT_TO_JED converts an NYT date to a JED.
• NYT_TO_YMD converts an NYT date to a YMD date.
• R8_UNIFORM returns a scaled pseudorandom R8.
• S_CAT concatenates two strings to make a third string.
• TIMESTAMP prints the current YMDHMS date as a time stamp.
• TRANSITION_TO_JED_COMMON returns the Common calendar transition as a JED.
• Y_ASTRONOMICAL_TO_COMMON converts an Astronomical year to a Common year.
• Y_CHECK_COMMON checks a Common year.
• Y_CHECK_GREGORIAN checks a Gregorian year.
• Y_CHECK_JULIAN checks a Julian year.
• Y_COMMON_TO_ASTRONOMICAL converts a Common year to an Astronomical year.
• YEAR_IS_LEAP_COMMON returns TRUE if the Common year was a leap year.
• YEAR_IS_LEAP_GREGORIAN returns TRUE if the Gregorian year was a leap year.
• YEAR_IS_LEAP_JULIAN returns TRUE if the Julian year was a leap year.
• YEAR_LENGTH_MONTHS_COMMON returns the number of months in a Common year.
• YEAR_LENGTH_MONTHS_GREGORIAN returns the number of months in a Gregorian year.
• YEAR_LENGTH_MONTHS_JULIAN returns the number of months in a Julian year.
• YM_CHECK_COMMON checks a Common YM date.
• YM_CHECK_GREGORIAN checks a Gregorian YM date.
• YM_CHECK_JULIAN checks a Julian YM date.
• YMD_CHECK_COMMON checks a Common YMD date.
• YMD_CHECK_GREGORIAN checks a Gregorian YMD date.
• YMD_CHECK_JULIAN checks a Julian YMD date.
• YMD_TO_NYT converts a YMD date to an NYT date.
• YMD_TO_S_NUMERIC writes a YMD date into a string.
• YMDF_CHECK_COMMON checks a Common YMDF date.
• YMDF_CHECK_JULIAN checks a Julian YMDF date.
• YMDF_COMPARE compares two YMDF dates.
• YMDF_TO_JED_COMMON converts a Common YMDF date to a JED.
• YMDF_TO_JED_GREGORIAN converts a Gregorian YMDF date to a JED.
• YMDF_TO_JED_JULIAN converts a Julian YMDF date to a JED.
• YMDF_TO_S_COMMON writes a Common YMDF date into a string.

You can go up one level to the FORTRAN90 source codes.

Last revised on 09 February 2009.