How to quickly determine the day of the week for a particular date

May 2018 calendar day of the week

For dates in 1900 or later, compute the day of the week as follows.

  1. Subtract 1900.
  2. To that number, add one-fourth of itself, discarding any remainder.  This sum is the year’s skew value
  3. If the month in question is January or February in a leap year, subtract 1 from the sum.
  4. Add the date in the month.
  5. Add the month’s skew value from the following table:
    0
    January, October
    1
    May
    2
    August
    3
    February, March, November
    4
    June
    5
    September, December
    6
    April, July
  6. The sum is the number of days after Sunday on which the date falls.

Comments

All of the arithmetic in step 3 and later can be done modulo 7.  In other words, if the sum is 7 or higher, subtract a multiple of 7 to get into the range 0-6.

The results of steps 1 and 2 depend only upon the year, so they can be calculated in advance for the current year.  For 2003, the year’s skew value is 2.  This can be memorized by adding it to Sunday and just remembering Tuesday for 2003.

The monthly skew table groups all the months that start on the same day of the week in a non-leap year, and therefore have the same
calendars (apart from differences in length).

For 1984 and after, you can subtract 1984 instead of 1900 in step 1 if you like.

The mnemonic “O MAN, June Saw July” may help you memorize the table.  The months in the mnemonic are the contiguous months from May through November (basically motorcycle season in Minnesota).  Then you just have to remember the groups of months with the same calendars in a non-leap year.

Why it works

There are 365 days in a normal (non-leap) year.  365 = 52 * 7 + 1.  So the calendar advances one weekday per year after 1900, plus one extra day for every leap year.  In leap years, the leap year correction for that year has to be discarded for dates in January and February, since those dates are not after the leap day (February 29th).

Examples

Example: June 6, 1944 (D-Day)

  1. Subtract 1900: 1944 – 1900 = 44
  2. Add one fourth of 44 to itself: 44 + 11 = 55, which is 6 (modulo 7)
  3. Although there was no remainder in step 2 and 1944 was thus a leap year, June is not January or February, so no correction is needed.
  4. Add the date in the month: 6 + 6 = 12, which is 5 (modulo 7)
  5. Add June’s skew value: 5 + 4 = 9, which is 2 (modulo 7)
  6. Sunday + 2 = Tuesday

Example: July 20, 1969 (Moon landing)

  1. Subtract 1900: 1969 – 1900 = 69
  2. Add one fourth of 69 to itself: 69 + 17 = 86, which is 2 (modulo 7)
  3. There was a remainder in step 2, so 1969 was not a leap year, and no correction would have been needed for July anyway.
  4. Add the date in the month: 2 + 20 = 22, which is 1 (modulo 7)
  5. Add July’s skew value: 1 + 6 = 7, which is 0 (modulo 7)
  6. Sunday + 0 = Sunday

Example: January 1, 2004

  1. Subtract 1984: 2004 – 1984 = 20
  2. Add one fourth of 20 to itself: 20 + 5 = 25, which is 4 (modulo 7)
  3. Subtract 1 for leap year correction of January, yielding 3
  4. Add the date in the month: 3 + 1 = 4
  5. Add January’s skew value: 4 + 0 = 4
  6. Sunday + 4 = Thursday

Example: December 25, 2003

  1. Use the memorized day of Tuesday for 2003 as a base.
  2. Add 5 for December to get Sunday.
  3. 25 is 4 (modulo 7); Sunday + 4 = Thursday.

And a final example that shows another application of the monthly skew table: Which months in 2003 have a Friday the 13th?

  1. The base day for 2003 is Tuesday.
  2. Tuesday + 13 = Monday
  3. Friday – Monday = 4
  4. The only month with a skew of 4 is June.

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.