From:	CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX"  6-OCT-1989 12:24
To:	MRGATE::"ARISIA::EVERHART"
Subj:	Finding Day of Week

Message-Id:  <8910061542.AA04355@crdgw1.ge.com>
Received: From CUNYVM.CUNY.EDU by CRVAX.SRI.COM with TCP; Fri,  6 OCT 89 06:41:47 PDT
Received: from UKACRL.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP R1.2.1MX) with BSMTP id 0658; Fri, 06 Oct 89 09:41:30 EDT
Received: from RL.IB by UKACRL.BITNET (Mailer X1.25) with BSMTP id 6575; Fri,
 06 Oct 89 14:14:55 BST
Received: from RL.IB by UK.AC.RL.IB (Mailer X1.25) with BSMTP id 5945; Fri, 06
          Oct 89 14:14:54 BS
Via:      UK.AC.STIR.VAXA;  6 OCT 89 14:14:48 BST
Date:     Fri,  6 OCT 89 14:15:42 BST
From: AJSCU%VAXA.STIRLING.AC.UK@CUNYVM.CUNY.EDU
To: INFO-VAX@KL.SRI.COM
Subject:  Finding Day of Week
Sender: JANET "AJSCU@UK.AC.STIR.VAXA" (Alistair Scolley) <AJSCU@VAXA.STIR.AC.UK>

     Recently I saw some people asking the INFOVAX list about an
algorithm for finding out the day of the week for a given date. Well,
there is a very neat little matrix which will give you exactly that.
It means you can print out a calendar for the entire 20th Century on
two pages of standard line printer paper, in standard ASCII
characters. Similarly, storing it on-line will take a small amount of
memory. Interested? Then read on...

     I first saw it in a Ready Reckoner (if you don't know what that
is, ask an accountant with more than about 20 years experience) that
my parents had. This book was probably 1920s or 1930s and I can't
remember the publisher, so can't give credit to the inventor of this
calendar. I didn't think of the idea, so you can't claim you did!

     The calendar is appended to this message. I've split it into two
parts for convenience - one from 1901 to 1984 and one from 1984 to
2007. Join them together if you want.

     It's a good idea to have a copy of the calendar beside you while
learning to look it up. The calendar is in four parts. The bottom left
part has the years, top left has the months, top right has the days of
the week and bottom right has the dates within the month. I'm typing
this in on 5th October 1989. To look up this date, go to the square
with 1989 in it. Then go upwards in the same column till you get to
"Oct" (top row). The days of the week that are in this row are the
ones to use for dates in October 1989. Thus, 1st is a Sunday and 5th
is a Thursday.

     Leap years are different and are written with suffix "J/F" or
"M-D". The "J/F" column is used for looking up January and February
and the "M-D" column for months March to December. (On the 1900-1984
calendar, the suffixes are "A" for January and February and "B" for
March to December).

     If you are superstitious and want to know when Friday the 13th
will come, then clearly, for the 13th to be a Friday, the month has to
use the top row. The columns in the left-hand half of the calendar
then show which months (the top row ones) in which years will have
Friday 13th.

     The calendar can be extended forwards or backwards, but just
remember about the change of calendar in the last century.

     Have fun.
==============================================================================

                                                    C  A  L  E  N  D  A  R

                                                     1 9 0 1  -  1 9 8 4


 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : SEP :     : FEB :     :     : JAN : APR #     :     :
 :     :     :     :     :
                    : DEC : JUN : MAR : AUG : MAY : OCT : JUL # SUN : MON : TUE
 : WED : THU : FRI : SAT :
                    :     :     : NOV :     :     :     :     #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : APR : SEP :     : FEB :     :     : JAN #     :     :
 :     :     :     :     :
                    : JUL : DEC : JUN : MAR : AUG : MAY : OCT # MON : TUE : WED
 : THU : FRI : SAT : SUN :
                    :     :     :     : NOV :     :     :     #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : JAN : APR : SEP :     : FEB :     :     #     :     :
 :     :     :     :     :
                    : OCT : JUL : DEC : JUN : MAR : AUG : MAY # TUE : WED : THU
 : FRI : SAT : SUN : MON :
                    :     :     :     :     : NOV :     :     #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    :     : JAN : APR : SEP :     : FEB :     #     :     :
 :     :     :     :     :
                    : MAY : OCT : JUL : DEC : JUN : MAR : AUG # WED : THU : FRI
 : SAT : SUN : MON : TUE :
                    :     :     :     :     :     : NOV :     #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    :     :     : JAN : APR : SEP :     : FEB #     :     :
 :     :     :     :     :
                    : AUG : MAY : OCT : JUL : DEC : JUN : MAR # THU : FRI : SAT
 : SUN : MON : TUE : WED :
                    :     :     :     :     :     :     : NOV #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : FEB :     :     : JAN : APR : SEP :     #     :     :
 :     :     :     :     :
                    : MAR : AUG : MAY : OCT : JUL : DEC : JUN # FRI : SAT : SUN
 : MON : TUE : WED : THU :
                    : NOV :     :     :     :     :     :     #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    :     : FEB :     :     : JAN : APR : SEP #     :     :
 :     :     :     :     :
                    : JUN : MAR : AUG : MAY : OCT : JUL : DEC # SAT : SUN : MON
 : TUE : WED : THU : FRI :
                    :     : NOV :     :     :     :     :     #     :     :
 :     :     :     :     :

 ===============================================================================
======
                    :1901  1902  1903  1904A 1904B 1905  1906 #     :     :
 :     :     :     :     :
                    :1907  1908A 1908B 1909  1910  1911  1912A#   1 :   2 :   3
 :   4 :   5 :   6 :   7 :
                    :1912B 1913  1914  1915  1916A 1916B 1917
 #.....:.....:.....:.....:.....:.....:.....:
                    :1918  1919  1920A 1920B 1921  1922  1923 #     :     :
 :     :     :     :     :
                    :1924A 1924B 1925  1926  1927  1928A 1928B#   8 :   9 :  10
 :  11 :  12 :  13 :  14 :
                    :1929  1930  1931  1932A 1932B 1933  1934
 #.....:.....:.....:.....:.....:.....:.....:
                    :1935  1936A 1936B 1937  1938  1939  1940A#     :     :
 :     :     :     :     :
                    :1940B 1941  1942  1943  1944A 1944B 1945 #  15 :  16 :  17
 :  18 :  19 :  20 :  21 :
                    :1946  1947  1948A 1948B 1949  1950  1951
 #.....:.....:.....:.....:.....:.....:.....:
                    :1952A 1952B 1953  1954  1955  1956A 1956B#     :     :
 :     :     :     :     :
                    :1957  1958  1959  1960A 1960B 1961  1962 #  22 :  23 :  24
 :  25 :  26 :  27 :  28 :
                    :1963  1964A 1964B 1965  1966  1967
 1968A#.....:.....:.....:.....:.....:.....:.....:
                    :1968B 1969  1970  1971  1972A 1972B 1973 #     :     :
 :     :     :     :     :
                    :1974  1975  1976A 1976B 1977  1978  1979 #  29 :  30 :  31
 :     :     :     :     :
                    :1980A 1980B 1981  1982  1983  1984A
 1984B#.....:.....:.....:.....:.....:.....:.....:

================================================================================
===================

                                                    C  A  L  E  N  D  A  R

                                                     1 9 8 0  -  2 0 0 7


 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : SEP :     : FEB :     :     : JAN : APR #     :     :
 :     :     :     :     :
                    : DEC : JUN : MAR : AUG : MAY : OCT : JUL # SUN : MON : TUE
 : WED : THU : FRI : SAT :
                    :     :     : NOV :     :     :     :     #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : APR : SEP :     : FEB :     :     : JAN #     :     :
 :     :     :     :     :
                    : JUL : DEC : JUN : MAR : AUG : MAY : OCT # MON : TUE : WED
 : THU : FRI : SAT : SUN :
                    :     :     :     : NOV :     :     :     #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : JAN : APR : SEP :     : FEB :     :     #     :     :
 :     :     :     :     :
                    : OCT : JUL : DEC : JUN : MAR : AUG : MAY # TUE : WED : THU
 : FRI : SAT : SUN : MON :
                    :     :     :     :     : NOV :     :     #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    :     : JAN : APR : SEP :     : FEB :     #     :     :
 :     :     :     :     :
                    : MAY : OCT : JUL : DEC : JUN : MAR : AUG # WED : THU : FRI
 : SAT : SUN : MON : TUE :
                    :     :     :     :     :     : NOV :     #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    :     :     : JAN : APR : SEP :     : FEB #     :     :
 :     :     :     :     :
                    : AUG : MAY : OCT : JUL : DEC : JUN : MAR # THU : FRI : SAT
 : SUN : MON : TUE : WED :
                    :     :     :     :     :     :     : NOV #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : FEB :     :     : JAN : APR : SEP :     #     :     :
 :     :     :     :     :
                    : MAR : AUG : MAY : OCT : JUL : DEC : JUN # FRI : SAT : SUN
 : MON : TUE : WED : THU :
                    : NOV :     :     :     :     :     :     #     :     :
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    :     : FEB :     :     : JAN : APR : SEP #     :     :
 :     :     :     :     :
                    : JUN : MAR : AUG : MAY : OCT : JUL : DEC # SAT : SUN : MON
 : TUE : WED : THU : FRI :
                    :     : NOV :     :     :     :     :     #     :     :
 :     :     :     :     :

 ===============================================================================
======
                    : 1980: 1980: 1981: 1982: 1983: 1984: 1984#     :     :
 :     :     :     :     :
                    : J/F : M-D :     :     :     : J/F : M-D #   1 :   2 :   3
 :   4 :   5 :   6 :   7 :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : 1985: 1986: 1987: 1988: 1988: 1989: 1990#     :     :
 :     :     :     :     :
                    :     :     :     : J/F : M-D :     :     #   8 :   9 :  10
 :  11 :  12 :  13 :  14 :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : 1991: 1992: 1992: 1993: 1994: 1995: 1996#     :     :
 :     :     :     :     :
                    :     : J/F : M-D :     :     :     : J/F #  15 :  16 :  17
 :  18 :  19 :  20 :  21 :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : 1996: 1997: 1998: 1999: 2000: 2000: 2001#     :     :
 :     :     :     :     :
                    : M-D :     :     :     : J/F : M-D :     #  22 :  23 :  24
 :  25 :  26 :  27 :  28 :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:
                    : 2002: 2003: 2004: 2004: 2005: 2006: 2007#     :     :
 :     :     :     :     :
                    :     :     : J/F : M-D :     :     :     #  29 :  30 :  31
 :     :     :     :     :

 :.....:.....:.....:.....:.....:.....:.....#.....:.....:.....:.....:.....:.....:
.....:


Alistair Scolley,                      BITNET: AJSCU @ VAXA.STIRLING.AC.UK
Computer Unit,
University of Stirling,
Stirling,  FK9 4LA
Scotland.
U.K.

