Search code examples
fortranmainframe

What date is 74029?


I have an old printout of a Fortran code.

The header is:

FORTRAN IV G LEVEL 21, MAIN, DATE=74029, 15/28/03, PAGE 001

I assume it's from an IBM mainfram, if it helps.

Does anyone know when was it printed?


Solution

  • Calendar dates written as YYDDD are composed of the last two digits of the four digit year, followed by the three digit day number in that year.

    • 74029 is 1974, day 029, i.e. January 29th, 1974
    • 83060 is March 1st, 1983
    • 84060 is February 29th, 1984 (leap year)

    This form was quite common on mainframes (and probably other platforms) at times when computers used to have just a few kilobytes of memory (RAM), or a few megabytes on hard disks. It saved three bytes per date to be stored compared to YYYYMMDD.

    On mainframes, this has been, and still is known as Julian Date, although it is not related to the Julian Day Number. Today, it is more commonly known as Ordinal Date.

    Sometimes a Julian date was simply written onto reports as is, leaving it up to the reader to transfrofm the three digit day number to month, and date.

    This, and other short forms of calendar dates, became a problem when the new century was approaching. What date is 00001? January first 1900, or January first 2000? Fortunately, computers and hard disks had a lot more space at that time, so programs could be changed to hold the full 4 digit year.