Calendars seem full of coincidences. Some hide a code, others depend on seven-day weeks or leap years. These nine games each have a recognisable mathematical idea; a simple addition does not need to become a separate trick.

Each game has a presentation, reproducible instructions and an example. Explanations start closed so you can try first. We use the Gregorian calendar. An age someone turns means the age reached on that year’s birthday, not necessarily their age on any arbitrary day.
Continue with the other collection: Number magic: 7 card tricks and their mathematical secrets
1. Ages that swap birth-year digits
Presentation
Two people were born in 1957 and 1961. Predict when the first turns 61 and the second 57 without testing every year.
How it works
- Take the last two digits: 57 and 61.
- Add them to their shared century base: 1900+57+61.
- Announce 2018 and check both ages.
Example. 2018−1957=61; 2018−1961=57. For just one person born in 1957, the year they turn 57 is 1900+2×57=2014.
Watch out. Both birth years must lie in the same hundred-year block, such as 1900–1999. To see both completed ages on one actual day, wait until both birthdays have passed.
Why it works: reveal the explanation
Write the birth years as C+a and C+b, using the same base C. In year C+a+b, their birthday ages are (C+a+b)−(C+a)=b and (C+a+b)−(C+b)=a. Matching your own birth-year digits is the case a=b, not a second mechanism.
A = C+a; B = C+b
Y = C+a+b = A+B−C
Y−A = b; Y−B = a
2. A birthday hidden in six operations
Presentation
A spectator calculates privately and tells you only the result. You recover month and day: the date has been encoded, not read from their mind.
How it works
- Multiply the month number by 5, then add 6.
- Multiply by 4, add 9, then multiply by 5.
- Add the day of the month. From the announced result, subtract 165.
- Read the last two digits as the day and the preceding digits as the month.
Example. 27 November: 11 → 55 → 61 → 244 → 253 → 1265 → 1292. You calculate 1292−165=1127 and read 11 | 27. For 3 February the code is 203, read 2 | 03.
Watch out. The encoded order is month–day, regardless of normal local date notation. It does not recover the birth year or verify that the date is valid.
Why it works: reveal the explanation
For month m and day d, the calculation is [(5m+6)×4+9]×5+d=100m+165+d. Subtracting 165 leaves 100m+d. Since the day is between 1 and 31, it cannot carry into the month digits. Integer division by 100 recovers m and the remainder recovers d.
R = [(5m+6)×4+9]×5+d = 100m+165+d
R−165 = 100m+d
m = floor((R−165)/100); d = (R−165) mod 100
3. Guess the birthday day with five sheets
Presentation
Someone thinks of their birthday day number, from 1 to 31. They say only which sheets contain it; you reconstruct the number.
How it works
- Prepare the five sheets below; month and year are not needed.
- For each sheet ask only whether their number appears.
- Add the weights of sheets receiving yes: 1, 2, 4, 8, 16.
Example. For day 27, yes answers come from weights 1, 2, 8 and 16. Their sum is 27.
Sheet / weight 1
| 1 | 3 | 5 | 7 |
| 9 | 11 | 13 | 15 |
| 17 | 19 | 21 | 23 |
| 25 | 27 | 29 | 31 |
Sheet / weight 2
| 2 | 3 | 6 | 7 |
| 10 | 11 | 14 | 15 |
| 18 | 19 | 22 | 23 |
| 26 | 27 | 30 | 31 |
Sheet / weight 4
| 4 | 5 | 6 | 7 |
| 12 | 13 | 14 | 15 |
| 20 | 21 | 22 | 23 |
| 28 | 29 | 30 | 31 |
Sheet / weight 8
| 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 |
| 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Sheet / weight 16
| 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Watch out. Only the day number is recovered. Do not change the lists: each contains exactly the numbers using that binary weight.
Why it works: reveal the explanation
Each integer from 1 to 31 has a unique expression as a sum of distinct powers of 2. The sheets identify those powers. Five yes/no answers distinguish 2⁵=32 patterns; all no would encode 0, which is not a day of the month.
27 = 16+8+2+1 = (11011)₂
4. A calendar rectangle reveals its centre
Presentation
A spectator selects three rows by three columns on a monthly calendar and tells you the sum of its nine dates. You instantly recover the centre and the whole block.
How it works
- Use seven calendar columns and a fully filled 3×3 block inside one month.
- Ask for the sum of the nine dates without seeing the chosen position.
- Divide by 9 for the centre; horizontal neighbours differ by 1 and vertical neighbours by 7.
Example. January 2026 contains the block 8,9,10 / 15,16,17 / 22,23,24. The sum is 144, so the centre is 144/9=16. The four corners also total 64=4×16.
Watch out. No blank cells, month boundaries or wrapping at the end of a calendar row: it must be a genuine rectangular block. The sum reveals the centre day, not an undisclosed month’s name.
Why it works: reveal the explanation
For centre x, the entries are x−8,x−7,x−6; x−1,x,x+1; x+6,x+7,x+8. Offsets cancel in pairs, leaving 9x. Opposite corners both sum to 2x. This is arithmetic symmetry, not a magic square with equal row sums.
Σ = 9x; x = Σ/9
8+9+10+15+16+17+22+23+24 = 144
x = 144/9 = 16
5. The ten-thousand-day birthday
Presentation
Someone born on a Monday reaches 10,000 elapsed days of life. Predict the weekday without counting months and years.
How it works
- Divide elapsed days by 7 and retain the remainder.
- For 10,000 the remainder is 4: advance four weekdays from the birth weekday.
- For the full date as well, add 10,000 days to the birth date using a calendar that handles leap years.
Example. Monday becomes Friday. Someone born on Saturday, 1 January 2000 reaches 10,000 days on Wednesday, 19 May 2027: Saturday plus four days.
Watch out. Count 10,000 fully elapsed days, not the ten-thousandth day when birth day is included as day one. Do not use 365×years to find the full date: leap days would be missing.
Why it works: reveal the explanation
10,000=7×1428+4. Complete weeks leave the weekday unchanged. The same mechanism handles 100 days, remainder 2, and 1000 days, remainder 6; they are one game, not three.
10 000 = 7×1428+4
6. Why every year has a Friday the 13th
Presentation
Go beyond recognising the date: explain why every Gregorian year has at least one Friday the 13th and no more than three.
How it works
- If a month starts on Sunday, its 13th is Friday.
- Check the first weekdays of all twelve months.
- For 2026 the qualifying months are February, March and November.
Example. 1 February 2026 is Sunday; twelve days later is Friday the 13th. March and November repeat the pattern.
Watch out. This uses the Gregorian calendar. The 1st itself is not an already elapsed day when calculating an offset.
Why it works: reveal the explanation
From the 1st to the 13th, 12=7+5 days elapse. Look at month-start offsets from 1 January. Both rows below, for common and leap years, contain every remainder from 0 to 6. Whatever the year’s first weekday, some offset reaches Sunday. No remainder appears more than three times, so the number of Friday the 13ths is between one and three.
Common year: 0,3,3,6,1,4,6,2,5,0,3,5
Leap year: 0,3,4,0,2,5,0,3,6,1,4,6
7. A returning calendar: the 28-year trap
Presentation
Can you reuse an old calendar? Not invariably after 28 years. The guaranteed Gregorian cycle is 400 years.
How it works
- Compare both the weekday of 1 January and whether 29 February exists.
- 2026 and 2037 are common years starting on Thursday, so their calendars match.
- Do not trust a fixed 28-year jump across a century: leap years 2096 and 2124 start on Sunday and Saturday respectively.
Example. 2000 is leap, 2100 is not, and 2400 is. A valid date and its weekday recur 400 years later if Gregorian rules are retained.
Watch out. The full rule is divisible by 4, except multiples of 100 unless divisible by 400 too. Matching first weekdays alone is insufficient when only one year is leap.
Why it works: reveal the explanation
Among 400 years there are 100 multiples of 4, but three century exceptions leave 97 leap years. Total days are 400×365+97=146097=7×20871. Both weekdays and the leap-year pattern repeat. Four hundred years is a guaranteed period, not the minimum wait for each individual calendar.
400×365+97 = 146097 = 7×20871
8. 53 numbered weeks without adding days
Presentation
A civil year has 365 or 366 days. How can its ISO week-numbering year have 53 weeks? Recognise the long ones without browsing a calendar.
How it works
- ISO weeks start on Monday; week 1 contains 4 January, equivalently the year’s first Thursday.
- Predict 53 ISO weeks if 1 January is Thursday, or Wednesday in a leap year.
- 2026 starts on Thursday and therefore has week 53.
Example. ISO week 1 of 2026 begins on 29 December 2025. 1 January 2027 still belongs to 2026-W53; 4 January 2027 begins 2027-W01.
Watch out. An ISO week-year need not match the civil year of each of its days. Fifty-three ISO weeks do not make civil year 2026 contain 371 days.
Why it works: reveal the explanation
A week belongs to the year containing its Thursday. Counting a year’s assigned ISO weeks is therefore counting its Thursdays: 52 plus a possible extra Thursday among the one or two days beyond 52 complete weeks. This gives precisely the Thursday-or-leap-Wednesday rule.
9. Name the weekday: Conway’s method
Presentation
With practice you can name a date’s weekday. John Conway’s Doomsday method uses small calculations and a few anchor dates, not a memorised calendar.
How it works
- Number weekdays Sunday=0 through Saturday=6. Let C be the century digits before the year’s final two digits. Its anchor is the remainder of 2+5×(C remainder 4), divided by 7. For 2000–2099 it is Tuesday=2.
- Divide the last two digits y by 12, giving quotient q and remainder r. Add q+r+floor(r/4) to the century anchor and reduce modulo 7. This is the year’s anchor weekday.
- Choose an anchor date in the month from the table: they all fall on that year’s anchor weekday.
- Find the day difference from the anchor date, remove complete weeks, and move forwards or backwards.
Example. 27 November 2026: 26=12×2+2, so q=2, r=2 and floor(r/4)=0. The anchor is 2+2+2+0=6, Saturday. Thus 7 November is Saturday. Twenty more days leave remainder 6, giving Friday.
| Month | Common year | Leap year |
|---|---|---|
| January | January 3 | January 4 |
| February | February 28 | February 29 |
| March | March 14 | March 14 |
| April | April 4 | April 4 |
| May | May 9 | May 9 |
| June | June 6 | June 6 |
| July | July 11 | July 11 |
| August | August 8 | August 8 |
| September | September 5 | September 5 |
| October | October 10 | October 10 |
| November | November 7 | November 7 |
| December | December 12 | December 12 |
Watch out. January and February require the correct common-year or leap-year anchor. Turn a negative remainder positive by adding 7. Do not confuse the month number with its anchor day.
Why it works: reveal the explanation
Each common year shifts weekdays by one; a crossed leap day adds another. The annual calculation equals y+floor(y/4), modulo 7: y=12q+r gives 15q+r+floor(r/4), and 15q has the same remainder as q. Monthly anchors differ by whole weeks, while century anchors follow the Gregorian 400-year cycle.
C = floor(Y/100); y = Y mod 100
a = [2+5(C mod 4)] mod 7
q = floor(y/12); r = y mod 12
D = [a+q+r+floor(r/4)] mod 7
The shared secret is not memorising an answer, but recognising what stays fixed: a difference, a remainder, a code or an elapsed day count. For historical dates, first establish which calendar was actually used: these rules do not automatically account for different countries’ Gregorian adoption dates.
Continue with the other collection