Doomsday rule
Overview
The Doomsday rule is an algorithm devised by John Conway to quickly calculate the weekday of any date in history. The algorithm works on the following principle:
There is a set of dates (called doomsdays), that for any year, fall on the same weekday (called the anchor day of the year).
Using the anchor, we can find out the weekday for any date using simple arithmetic.
The doomsdays we need to remember in order to use the algorithm are:
MM/DD  Full date  Mnemonic 

1/3 (1/4 for leap years)  Jan 3 / Jan 4   
2/28 (2/29 for leap years)  Feb 28 / Feb 29   
3/14  Mar 14  Pi day 
4/4, 6/6, 8/8, 10/10, 12/12  April 4, Jun 6, Aug 8, Oct 10, Dec 12  Even months except Feb 
5/9, 9/5, 7/11, 11/7  May 9, Sept 5, Jul 11, Nov 7  9to5 at 711 
Other memorable doomsdays are Jul 4 (Independence day), Oct 31 (Halloween) and Dec 26 (Boxing day).
In total, there are 52 doomsdays in a year. In leap years, the doomsdays in the month of January and February are shifted by one day. However, the total remains the same.
The algorithm involves the following steps.
 Find the anchor day for the century (required for step 2).
 Find the anchor day for the year. All doomsdays fall on this anchor day.
 Count forward/backward from the nearest doomsday to the specified date.
For calculations, we assign an index for each weekday. Starting from Monday (1) to Sunday (7), the index equals $rank\mod 7$.
Day  Index  Mnemonic 

Monday  1  Oneday 
Tuesday  2  Twosday 
Wednesday  3  Threesday 
Thursday  4  Foursday 
Friday  5  Fiveday 
Saturday  6  Sixturday 
Sunday  0  Noneday 
Example (Jul 27, 1987)
This example shows how the algorithm works in practice. See the sections below for details about step 1 and 2.

Anchor day for the century (1900s) = 3 (Wednesday)

Anchor day for the year (1987) = 6 (Saturday)

Nearest doomsday to Jul 27 is Jul 11 = Saturday (from step 2).
July 25 = July 11+7+7 = Saturday
July 27 = Monday.
Finding the anchor day for the century
Given a year $y$,
Let $c$ = the first 2 digits of the year (or $\left\lfloor\frac{y}{100}\right\rfloor$)
Method 1
Anchor = $5\times(c\mod 4)\mod 7$ + Tuesday
Method 2
Value of $c\mod 4$  Anchor 

0  Tuesday 
1  Sunday 
2  Friday 
3  Wednesday 
Example (1900s)
$19\mod 4$ = $3$ $\implies$ Wednesday
Or
$5\times(19\mod 4)\mod 7$ + Tuesday = $1$ + Tuesday = Wednesday
The following table lists the anchor days for 1500s to 2600s:
Century  Anchor day (Index) 

1500s, 1900s, 2300s  Wednesday (3) 
1600s, 2000s, 2400s  Tuesday (2) 
1700s, 2100s, 2500s  Sunday (0) 
1800s, 2200s, 2600s  Friday (5) 
Mnemonics for recent centuries:
 1900s: Weindisday (most living people were born in that century)
 2000s: Twosday or YTueK
Finding the anchor day for the year
Given a year $XXYY$,
Method 1
Let $a$ = Anchor day of the century
$b = \left\lfloor\frac{YY}{12}\right\rfloor$
$c = YY\mod 12$
$d = \left\lfloor\frac{c}{4}\right\rfloor$
Anchor day of the year = $(a+b+c+d)\mod 7$
Note: If you use this method, you can store the values for $a$, $b$, $c$, and $d$ in your index, middle, and ring fingers and the pinkie respectively during mental calculations.
Method 2
Anchor = Century's anchor day + $\left(YY+\left\lfloor\frac{YY}{4}\right\rfloor\right)\mod 7$
Method 3: The "odd+11" method
 Let $t = YY$
 If $t$ is odd, add $11$.
 $t = \frac{t}{2}$
 If $t$ is odd, add $11$.
 $t = 7(t\mod 7)$
 Count forward $t$ days from the century's anchor day to get the year's anchor day.
Note: Each common year advances the anchor day by one day. Each leap year advances it by two days.
Example (1987)
$a = 3$
$b = \left\lfloor\frac{87}{12}\right\rfloor = 7$
$c = 87\mod 12 = 3$
$d = \left\lfloor\frac{3}{4}\right\rfloor = 0$
Anchor = $(3+7+3+0)\mod 7 = 13\mod 7 = 6$ (Saturday)
Or using "odd+11" method:
$87$ > $98$ > $49$ > $60$ > $7(60\mod 7)$ = $74$ = $3$ > Wednesday + 3 = Saturday
Example walkthrough (March 19, 1881)
Here's a detailed walkthrough of another example using my preferred methods.

Anchor for 1800s:
Using method 2 from above, $18\mod 4$ = $2\implies$ Friday (5)

Anchor for 1881:
Using "odd+11" method, $81$ > $92$ > $46$ > $7  (46\mod 7)$ = $3$ > $3$ + Friday = Monday (1)

Nearest doomsday to March 19 is Pi day (March 14).
Since March 14 is a Monday, March 19 must be a Saturday.