Sunday inaugurations

I promise this blog isn’t going to be all calendars, all the time, but I saw a NY Times story yesterday about President Obama’s private swearing-in ceremony in the White House.

The official swearing-in of Mr. Obama, 51, was just the seventh time in history that a president was sworn in privately before the public ceremony, and the first since President Ronald Reagan’s second inauguration. Each instance since 1821 occurred because the constitutionally mandated date for the inauguration fell on a Sunday.

How could I resist the challenge of figuring out all the Sunday inaugurations?

Being in a Lispy state of mind after my last post, I first wrote a couple of functions using Dershowitz and Reingold’s code from their Calendrical Calculations book. But since this problem didn’t involve any conversions between calendars, I decided to rewrite it in Python using the datetime module. And then I extended it to show the day of the week for all the inaugurations and give a count for each one. Here’s the code:

python:
 1:  #!/usr/bin/python
 2:  
 3:  from datetime import date
 4:  
 5:  dow = "Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split()
 6:  
 7:  def inaugurationDay(year):
 8:    if year % 4 == 1:
 9:      if year > 1933:
10:        return date(year, 1, 20)
11:      elif year > 1789:
12:        return date(year, 3, 4)
13:      elif year == 1789:
14:        return date(year, 4, 30)
15:    return None
16:  
17:  def inaugurationWeekday(year):
18:    try:
19:      return inaugurationDay(year).weekday()
20:    except AttributeError:
21:      return None
22:  
23:  inaugurations = []
24:  for d in range(7):
25:    inaugurations.append([])
26:  
27:  for y in range(1789, 2014, 4):
28:    idow = inaugurationWeekday(y)
29:    print "%d: %s" % (y, dow[idow])
30:    inaugurations[idow].append(y)
31:  
32:  print
33:  
34:  for d in range(7):
35:    print "Inaugurations on %s (%d)" % (dow[d], len(inaugurations[d]))
36:    print ", ".join(str(x) for x in inaugurations[d])
37:    print

The key function is inaugurationDay, which required a little investigation. I knew that inaugurations used to be in March, and that Franklin Roosevelt’s first in 1933 was still on that schedule.1 A quick review of the Wikipedia page on presidential inaugurations showed that

You can see those facts incorporated into inaugurationDay. If you accidentally give it a year in which there was no inauguration, it returns None; otherwise it returns the date in Python’s datetime.date format.

The inaugurationWeekday function builds on inaugurationDay to return an integer representing the day of the week. Monday = 1, Tuesday = 2, etc.

Lines 23-25 create a blank list of lists that will collect all the inaugurations, organized by (there must be a better way). Lines 27-30 walk through history, filling that list of lists and printing out the inauguration days of the week as it goes. Lines 34-37 then print out a summary.

Here’s the output:

1789: Thursday
1793: Monday
1797: Saturday
1801: Wednesday
1805: Monday
1809: Saturday
1813: Thursday
1817: Tuesday
1821: Sunday
1825: Friday
1829: Wednesday
1833: Monday
1837: Saturday
1841: Thursday
1845: Tuesday
1849: Sunday
1853: Friday
1857: Wednesday
1861: Monday
1865: Saturday
1869: Thursday
1873: Tuesday
1877: Sunday
1881: Friday
1885: Wednesday
1889: Monday
1893: Saturday
1897: Thursday
1901: Monday
1905: Saturday
1909: Thursday
1913: Tuesday
1917: Sunday
1921: Friday
1925: Wednesday
1929: Monday
1933: Saturday
1937: Wednesday
1941: Monday
1945: Saturday
1949: Thursday
1953: Tuesday
1957: Sunday
1961: Friday
1965: Wednesday
1969: Monday
1973: Saturday
1977: Thursday
1981: Tuesday
1985: Sunday
1989: Friday
1993: Wednesday
1997: Monday
2001: Saturday
2005: Thursday
2009: Tuesday
2013: Sunday

Inaugurations on Monday (10)
1793, 1805, 1833, 1861, 1889, 1901, 1929, 1941, 1969, 1997

Inaugurations on Tuesday (7)
1817, 1845, 1873, 1913, 1953, 1981, 2009

Inaugurations on Wednesday (8)
1801, 1829, 1857, 1885, 1925, 1937, 1965, 1993

Inaugurations on Thursday (9)
1789, 1813, 1841, 1869, 1897, 1909, 1949, 1977, 2005

Inaugurations on Friday (6)
1825, 1853, 1881, 1921, 1961, 1989

Inaugurations on Saturday (10)
1797, 1809, 1837, 1865, 1893, 1905, 1933, 1945, 1973, 2001

Inaugurations on Sunday (7)
1821, 1849, 1877, 1917, 1957, 1985, 2013

Sundays have been on the rare side (Friday has fewer inaugurations but will catch up in 2017). You might think that the days of the week should be more nearly equal, but two things have worked against that:

  1. The change from March to January.
  2. The lack of leap years in 1800 and 1900.

If you start at 1801 and go forward, you see a pattern that repeats throughout the 19th century: Wednesday, Monday, Saturday, Thursday, Tuesday, Sunday, Friday. This 28-year repetition follows the usual 28-year repetition of the calendar (you could, for example, use a 1985 wall calendar this year and it would match perfectly). But skipping a leap year, which we do in century years that aren’t multiples of 400, messes up that pattern and disrupts the even distribution of inauguration days.

The switch from March 4 to January 20 was a similar disruption. These dates are 43 days apart in non-leap years, which caused the Saturday in 1933 to be followed by a Wednesday instead of a Thursday in 1937. Thursday, Tuesday, Sunday, and Friday each got screwed out of one appearance. They apparently did a poor job of lobbying when the 20th Amendment was up for ratification.

OK, that’s it for calendars for a while. You can tell your friends it’s safe to come back.


  1. In The Glory and the Dream, William Manchester devotes a chapter to the country’s unraveling at the bottom of the Depression as it waited out the long lame duck end of the Hoover administration. It stuck with me.