A small rethought guide on calculating the day of week fairly easily
(Image ‘borrowed’ from here)
Twelve dates are all to remember, (and one day of week each year), the rest is simple calculus that anyone can do without paper.
1) Memorise twelve DATES that got the same weekday (four weeks apart), note the start in March, to avoid dealing with Feb 29.
Jan. 5. (*)
Feb. 2. (*)
(*) the following year
2) Each year memorise this day of week for current year. E.g. for 2021: Wednesday, and optionally the week-number for the first: 13 in 2021
3) Remember that January and February are handled as previous year. Count the number of days relative to one of the reference days, While larger than 7 subtract 7 (or: take the remainder of this number by division with 7), and forward the day of week that number of days. (Obviously you can count both days before and after, stepping backwards/forwards)
Example: what is the weekday of new years eve?
Either count this as 5 days before Jan. 5. And as 7-5=2, that is 2 days after the memorised day.
Or if you prefer counting forwards only start from Dec 8. It is (31-8)=23 days after, but 23 2 (Or: 23-7-7-7=2), so 2 days after.
So based on Wednesday for 2021, that is: Friday.
Note that Mar. 2. in normal years and Mar. 1 in leap years obviously have the same weekday as Feb. 2 (as 28 0). And as Mar. 3 obvious got the same weekday as Mar 31. (31-3=28 0) the day of week of a particular day is advanced by one every normal year and by two in leap years as you most likely already knew.
If you want to calculate for a date somewhere further in the future, you thus need to add 1 per year PLUS an additional 1 per intermediate 29/2 (leap year).
Obviously subtract similar for a date in an earlier year.
Note that the dates selected for memory is (now) deliberately taken four weeks apart, this also makes it easier to calculate date distances and work with week-numbers.
If you have trouble memorising the 12, but do remember the number of days per month, moving four weeks forward is moving one month ahead and days backwards 31-28=3 respectively 30-28=2 going from a month with 31 resp. 30 days to the next.