# Memorial Day puzzle

In 2025, Memorial Day will be on May 26. Also, in 2026, Memorial Day will be on May 25. Notice that the last two digits of the year and the Memorial Day date in May have just switched places.

The same pattern also holds for the years 2028 and 2029 in the 21st century (with Memorial Day on May 29 and May 28 respectively).

The years 2126 and 2127 in the 22nd century also follow the same pattern (with Memorial Day on May 27 and May 26 respectively), as do the years 2230 and 2231 in the 23rd century (with Memorial Day on May 31 and May 30 respectively).

In the 22nd century, the Memorial Day dates for the years 2128, 2129, 2130, and 2131 are in reverse order of the last two digits of the years (May 31, May 30, May 29, and May 28 respectively). Also, in the 24th century, the years 2325 and 2328 have Memorial Day on the same date as the last two digits of the year (May 25 and May 28 respectively).

It is also possible that switching the last two digits of the year with the Memorial Day date will produce another valid Memorial Day date in a different century (restricting only to the 21st, 22nd, 23rd, and 24th centuries). This has two pairs of solutions. Can anyone find both of them?

Here is a hint:

Both pairs of solutions involve a year in the 21st century and another year in the 24th century.

First notice that

Since memorial day falls on the last Monday of May, the date must be between the 25th and 31st of May (inclusive).
This means that, for this problem, we only need to consider seven years within each century - giving a total of 28 years.

Further notice that

If memorial day in one year falls on day $$X$$ then it will fall on day $$X-1$$ in the next year if the year is not a leap year and day $$X-2$$ if it is (where we cycle back to 31 when we reach 25).

For example, memorial day of 2025 is May 26. This allows us to quickly produce the memorial days for the next six years as being May 25, 31, 29, 28, 27, 26.

From the question

We know that memorial day 2126 is on May 27. This allows us to deduce the memorial days between 2125 and 2131 as being (in order) May 28, 27, 26, 31, 30, 29, 28.

Similary, since memorial day of 2230 is on May 31, we deduce the memorial days between 2225 and 2231 as being May 30, 29, 28, 26, 25, 31, 30.

And since memorial day of 2325 is on May 25, the memorial days between 2325 and 2331 are May 25, 31, 30, 28, 27, 26, 25

Finally

We can arrange the numbers into a 4x7 grid where the rows are the centuries and the columns are the last two digits of the year and fairly easily read off the swaps overlapping different centuries.

The solutions are

Memorial day 2030 occurs on May 27 matching with memorial day 2327 on May 30.
Memorial day 2031 occurs on May 26 matching with memorial day 2326 on May 31.