This is very similar to the method I use and, after conversation with him, the method Art Benjamin uses. It's trivial to do in 10 to 15 seconds, though it requires practice, a very small amount of memorisation[0], and a small amount of mental arithmetic. I use it regularly, partly to keep in practice, and partly because once you have the skill you find it's surprisingly useful.
JH Conway used a different technique[1] which I have swutch to when computing days in the current year. It's quicker and easier, but I find that it's harder to compute "The Doomsday" for other years (it's Thursday this year), so I revert to my standard method[2].
Example: Today is 2024/05/24
Years since 2012 is 12
Leap years is 12/4 = 3
Magic month number = 2
Date is 24
Add mod 7 is (12+3+2+24) = (-2)+3+2+3 = 6 = Friday
[0] A "magic number" for each month. There are mnemonics, and they can be computed from first principles if needed. It's also easy to remember a few and then compute the others.
144 : Jan, Feb, Mar
025 : Apr, May, Jun
036 : Jul, Aug, Sep
146 : Oct, Nov, Dec
[2] All values computed mod 7. Take years since 1900. Add number of leap years since 1900 (so (YYYY-1900)/4 rounded down). Add the magic number for the month. Add the day of the month. Then Sunday=1, Wednesday=4, etc.
Because the calendar repeats every 28 years, for more recent dates you can start with 2012 instead of 1900.
Like the joke of the guy returning to Boston after being away for years; asks his cab driver "Do you know where I can get scrod" and the driver says "Sure, but I've never heard that in the past perfect before!"
Another especially funny part of that joke for me is that this is set in Boston (which has a couple of important colleges) ... because someone once told me that a lot of post-graduates of that college I was attending were driving taxicabs in that city.
For some reason part participles are particularly hard for me too (native English speaker who speaks no other languages fluently). (they must just be a mess in English? I can't imagine how non-native speakers ever get any of them)
I wouldn’t say that Chinese verbs have no tense so much as that they are uninflected and that tense is marked with particles (which admittedly do not cause difficulties with irregular infexions).
Chinese technically does not have grammar tenses, but it has aspects indicated by particles. They mark the completion status, direction, presence, and so on.
However, the verbs themselves don't have tense. So these sentences can be identical: "I will walk home, then I will eat a cake" and "I walked home, then I ate a cake".
The overall timeframe can be given by a larger context: "Once my shift is over, I ..." / "I drank too much yesterday, that's all I remember: ".
It's simply not possible in English because every verb has a grammar tense built into it.
I remember them in this table because they are squares (except for December), as well as "highlights" ... May=2 and August=3 are two that I have "to hand".
This was the first explanation that I immediately memorised. Thank you for sharing. I got quite a few right, but as I experimented I failed on February 7th 2032. My math was:
Years since 2012 is 20
Leap years is 20/4 = 5
Magic month number = 4
Date is 7
(20 + 5 + 4 + 7) % 7 = 1
So I was expecting Sunday, but the answer is Saturday. After some thought I realised: 2032 is a leap year and the chosen date is before February 29th. In those cases (on or before that day), it is necessary to subtract 1.
> A "magic number" for each month. There are mnemonics, and they can be computed from first principles if needed. It's also easy to remember a few and then compute the others.
> 144 : Jan, Feb, Mar
025 : Apr, May, Jun
036 : Jul, Aug, Sep
146 : Oct, Nov, Dec
It can be useful to combine mnemonics and computation. Consider this sequence:
0, 1, -1, 0, 0, 1, 1, 2, 3, 3, 4, 4
It is the offset between the day of the year of the 1st of each month and the day of the year the 1st would be if the preceding months had all been 30 day months. For example if the first 11 months had all been 30 day months Christmas, December 25, would be day 30 x 11 + 25 = 355. Add the 12th item from the offset sequence, 4, to that to get the real day of the year for December 25th, which is 359.
The offset sequence is fairly easy to memorize.
Once you have that sequence memorized its easy to get the month magic numbers for day of week calculations. There are a few different sets of month magic numbers in use, but for all of them:
Magic(n) = 2 n + Offset(n) + c
where Magic(n) is the magic number for month n (1 ≤ n ≤ 12), Offset(n) is the n'th item in the offset sequence, and c is a constant that depends on just what set of magic month numbers you use. For the 1 4 4 0 2 5 0 3 6 1 4 6 magic numbers c = -1.
For example for month 12, December, we get 2 x 12 + 4 + -1 = 6 mod 7.
By memorizing the offset sequence and using that to get the month magic numbers you get, at the cost a small amount of calculation to get the month numbers, easy day of year and days between dates calculations.
Of course it works both ways. Given memorized month magic numbers you can compute Magic(n) - 2 n - c and that will equal Offset(n) mod 7. As long as you remember that Offset(n) is in [-1,4] and so adjust anything outside that range by adding/subtracting multiples of 7 to get into range it should be fine.
I am struggling to understand the advantages over the Lewis Carroll method, which I find very simple and quick. It seems to add quite a lot of complexity.
I'm struggling to see why you think this is more complex ... the methods seem completely equivalent to me. The Carroll method does:
1: A calculation for the Century-Item ... divide by 4, take overplus from 3, multiply remainder by 2.
2: A calculation for the Year-Item ... Add together the number of dozens, the overplus, and the number of 4’s in the overplus.
3: A calculation for the Month-Item ... alternatively, memorise a table: the required final numbers after division by 7 are January, 0; February, 3; March, 3; April, 6; May, 1; June, 4; July, 6; August 2; September, 5; October, 0; November, 3; and December, 5.
Note that these numbers are exactly those in my table, minus 1.
4: Include the Day-Item.
Then add them all (mod 7) and convert the number to a month.
It's exactly equivalent to what I described, except the Carroll method has additional calculations for the year.
Really? Colin's method seems pretty simple to memorize and work with. Especially since it's all addition mod 7. Given that the mod operator distributes over addition you can work answers out easily while working with small numbers.
For example, what day of week was September 2, 1945?
45/4 = 11 (mod 7 = 4)
45 mod 7 = 3 (easy to work out from 7 times table)
September = 6
2
So you've got 4 + 3 (disappears under mod 7) and 6 + 2 mod 7 = 1. So, the second world war ended on a Sunday.
I think it's unreasonable for you to have been downvoted, and I've given you an upvote to do what I can to balance that. Expressing confusion over something like this is perfectly reasonable.
The numbering itself has little or nothing to do with the Bible. The practice of numbering days of the week is, as the page you linked suggests earlier, widespread and much older than the Bible.
Sunday is the day of creation in the Bible because it was the first day in the calendar being used where Genesis was written and translated, so "Day 1" became "Sunday" because to the translator "Sunday" was the first day. That calendar itself was not mathematical - the Hebrew calendar was an empirical lunisolar calendar with arbitrary intercalarion for thousands of years until it was fixed in 2CE in Judea, and it took another thousand years for this practice to become consensus, so Sunday being the day of creation is purely incidental and not a necessary intersection.
Ascribing the Bible into it is gratuitous and useless. While it might be a reason why a small proportion Christians use it, it only explains a tiny minority of its usage, not most of it. It's just explained by it being an obvious way to name days.
He didn't ascribe the Biblical narrative to the convention, he mentioned that they match. They could match due to coincidence, due to having a common ancestor, or due to the Biblical narrative itself following the extent (as you claim) standard.
I wrote "mostly ultimately because of", so I did mean to say that I thought the Biblical narrative was the historical reason that most cultures and languages that use this numbering did so.
I'm pretty curious about this question, which I've previously asked in the form of "for how long has there been a worldwide consensus about which day of the week it is?". One answer that I heard is sort of akin to sudosysgen's account, in that some people suggested that the question might not be meaningful: there may have been different cultures with a seven-day week and, when they made sustained contact, instead of debating with each other about "which day of the week it is", they may have understood themselves to be translating their existing names for the weekdays -- some of which were based on numbers.
To the extent that that's a good way of talking about it, I also don't have a good understanding of when those translations would have happened, or who would have made them.
It most likely comes from Greek, as the first time the Bible would be translated in a language where days had names. Some Greek calendars used the seven day week which seems to originate from the Sumerians, and naturally the day of the Sun would be the choice for the first day in the Greek pantheon.
I just looked in the Septuagint and (I guess unsurprisingly) it uses ἡμέρα μία, ἡμέρα δευτέρα, ἡμέρα τρίτη. So it wasn't literally directly in the translation process. One could also say that the Genesis text is counting days rather than naming them, as Genesis 1:5 for says יוֹם אֶחָד ('one day') whereas the "name" of the day in Hebrew is יוֹם רִאשׁוֹן ('first day').
This author argues that the "the Jewish, biblical week and the planetary week of astrological origin" were combined in Rome rather than Greece, while agreeing that there are earlier antecedents for the use of the seven-day week.
Wikipedia on "nundinae" seems to roughly agree with this interpretation:
> The 7-day week first came into use in Italy during the early imperial period. For a time, both systems were used together, but the nundinae are seldom mentioned in extant sources after the Julio-Claudian period. The nundinal cycle had probably fallen out of use by the time Constantine adopted the Hebrew weeks for official use in AD 321, altering the day of rest by declaring the Lord's day the Day of the Sun (dies Solis) a legal holiday. Different scholars have placed the end of 8-day markets at various dates from the late 1st to early 5th centuries.
A little pressed with time, but does it handle leap years properly? Since every year divisible by 100 is not a leap year, unless it is also divisible by 400?
There is a small correction needed for January and February in leap years, and I haven't included the corrections for pre-1900. The Carroll method does deal with these issues and I have internalised them, but I find I never use them, so I retain only the simpler version.
One simple way to do January and February is to treat them as part of the previous year (with an adjustment for the constant you remember for those months).
I don't quite understand. Your magic month numbers are 3 digits, but you only use one digit in your example. And how does substituting 2012 work, when 2012 was a leap year but 1900 wasn't?
And we can substitute 2012 for 1900 because we make a correction in Jan and Feb in leap years. Knowing that 1900 was not a leap year means we don't make the correction, but 2012 was a leap year so we do.
I learned this at MathCamp from Conway himself! The mnemonics he taught us for the “doomsdays” were:
> Even months aside from February, same date as the month, so 4/4, 6/6, 8/8, 10/10, 12/12.
> “Working 9 to 5 at 7-11”: 5/9, 7/11, 9/5, 11/7
> Jan–Mar are a bit arbitrary: Feb is the last day of the month (so 2/28 or 2/29), March is the 0th day (same), and Jan is 1/31 or 1/“32” depending on if it’s a leap year.
"When I taught at Princeton five years ago, I asked my old college roommate to get to John Conway and ask. To my surprise it took 3, not 2, degrees of separation to get to him. He said he wanted the name to end in "-day" and "Dooms" popped into his head."
Likely that sprung to mind because of the "Domesday Book":
"Domesday Book (/ˈduːmzdeɪ/ DOOMZ-day; the Middle English spelling of "Doomsday Book") is a manuscript record of the Great Survey of much of England and parts of Wales completed in 1086 at the behest of King William the Conqueror."
You can take mod 7 anywhere you like as you go. It's a tool to make the arithmetic easier.
No, you don't need to do it relentlessly as you go, but it can be used in an ad hoc manner to keep the numbers small.
Having said that, if you have 24, you can reduce it (mod 7) to 10, which you might find it easier to work with rather than reducing it to 3. Similarly if you start with 27 you can reduce it to -1 (mod 7). You don't always need to reduce things to the range [0..7).
(Note, by convention the square bracket implies "included" and the round bracket implies "excluded", so [0..7) is the collection {0,1,2,3,4,5,6}.)
Yup. The designers of these kind of day of the week systems generally design as if the year started on March 1, so leap year shenanigans just mess with the last day of the year. They take that into account in their formulas for the century-based and year-based terms of the formulas so that each March 1 will be the right number of days after the previous March 1.
That way when using the system you don't have to care about leap years except during January and February. The formulas always give February 28th as the day before March 1 which in leap years is one day too late because of February 29th, and so as you surmised you need to adjust by -1 for dates in those months.
Reading the article, I wandered into the difference of Old Style and New Style dates and what happened in 1752.
From [1]: By the 18th century, the English legal year – used for legal, financial and other civil purposes – had for centuries begun on 25 March, or Lady Day.[13][i] Thus, for example, 24 March 1707 was immediately followed by 25 March 1708, while the day following 31 December 1708 was 1 January 1708, with 1709 still nearly three months away.
To this day the UK tax year still begins on April 6th, for reasons [1] that have to do with the migration from Julian to Gregorian calendars almost 300 years ago. I wonder if other countries have so many of these legacy patches from ye olden times.
Though note the wiki page for Carroll's method[1] states:
1676, February 23
...
Dates before 1752 would in England be given Old Style with 25 March as the
first day of the new year. Carroll's method however assumes 1 January as
the first day of the year, thus he fails to arrive at the correct answer,
namely "Friday".
...
It is noteworthy that those who have republished Carroll's method have
failed to point out his error"
I've been amused by this for a while, although I think when I first saw it I didn't realize that there was so much country-to-country variation in what year the Gregorian calendar was legally adopted.
Maybe a better (or much worse!) behavior would be to show the switch in the current locale, so in ru_RU it happens in 1918, but in es_ES (or es_MX, es_CO, es_AR, es_PY, ...) it happens in 1582.
I'm having trouble following the algorithm for the month number.
From the article:
The Month-Item. — If it begins or ends with a vowel, subtract the number, denoting its place in the year, from 10. This, plus its number of days, gives the item for the following month. The item for January is ‘0’; for February or March (the 3rd month), ‘3’; for December (the 12th month), ’12.’ [So, for clarity, the required final numbers after division by 7 are January, 0; February, 3; March, 3; April, 6; May, 1; June, 4; July, 6; August 2; September, 5; October, 0; November, 3; and December, 5.]
My attempt to implement:
For January, the preceding month is December, which neither begins nor ends with a vowel, so I do not subtract 10. The days in December are 31, so 12+31 = 43 mod 7 = 1, not the 0 of the article.
For February, the preceding month is January, which ends in a vowel, so I subtract 1 from 10, giving 9, add the days in January 1+31 = 32 mod 7 = 4, not the 3 of the article.
For March, the preceding month is February, which ends in a vowel, so I subtract 2 from 10 giving 8 and add February's 28 days 8+28 = 36 mod 7 = 1, not the 3 of the article. Had I used a leap year 29 for the days in February at this step the result would be 2, which still does not match the article result. Since the article has a constant result for March, it is either always using 28 or always using 29 days in February.
For April, the preceding month is March, which neither begins nor ends in a vowel so I do not subtract it from 10. 31 days in March gives 3+31 = 34 mod 7 = 6, which does match the article result.
For May, the preceding month is April, which starts with a vowel, so I subtract its position from 10, 10-4 = 6, add April's 30 days 6+30 = 36 mod 7 = 1 which does match the article.
For June, the preceding month is May, ending in a vowel, so I subtract May's 5 from 10, and adding May's 31 days gives 5+31= 36 mod 7 = 1 which does not match the article.
This should suffice to illustrate my misunderstanding; what have I got wrong?
February, March -- The item ... for February or March (the 3rd month), ‘3’ = 3
December -- The item ... for December (the 12th month), ’12.’
So these all use fixed values.
The `(10-place)+days mod 7` logic works for May, July, September, and November using the previous month's values -- effectively every other month. The vowel trick is likely a nmemonic for not having to remember which months to do this for.
The other months are the previous month's `item+days mod 7`, although it is unclear where this interpretation is deduced. -- The "If it begins or ends with a vowel, subtract the number, denoting its place in the year, from 10." text does not apply, so I would have assumed that is was 0 not the calculated item value. Thus, I would have expected it to just use the days in month.
I struggled with this too. The best understanding I've been able to come to is this:
1. Every month's item number can be calculated from the preceding month's item number by the method given. I.e. add the number of days in the preceding month to the preceding month's item number then take mod 7.
2. For January we take it that there is no preceding month. Therefore the numbers in such a calculation are all zero, so we end up with zero.
3. For later months you don't need to start at January and go month by month to the month you want; you can start at a month with a start- or end-vowel and use the shortcut that such a month's item number is ten minus the month number.
4. For the purposes of 3, 'y' does not count as a vowel.
Perhaps if someone who gets the language did it for today's date, we'd both get some clarity. I've tried working backwards but the labyrinthine explanation doesn't project
It's really interesting watching Art Benjamin do this in his TED talk[0] ... if you watch closely you can see him keeping track of the intermediate calculations in his hand movements.
Agreed. I don't get from the explanation how March is 3 and May is 1, as they are both 31 days and neither begins nor end with a vowel. I assumed there was some missing text about what to do if the month doesn't begin or end with a vowel.
Chess was like that too. Consider a game where the first move was for white to move the knight that is closest to the white king to the square that is two squares forward and one square to the left of where the knight started.
Here's how that move would have been written at various times from the 17th century to the present [1].
Early 1600s: The white king commands his owne knight into the third house before his owne bishop.
Mid-1700s: K. knight to His Bishop's 3d.
Early 1800s: K.Kt. to B.third sq.
Around 1850: K.Kt to B's 3rd.
Around 1860: K.Kt to B. 3d.
Around 1870: K.Kt to B3.
Around 1890: KKt-B3.
Early 1900s: Kt-KB3.
Mid 1900s: N-KB3.
Last quarter of 1900s to present: Nf3 or if you want to avoid language-specific piece names ♘f3.
Including 1752 is problematic, in the British Empire, it was the only year with 355 days, as September 3–13 were skipped when the Empire adopted the Gregorian calendar.
These skipped days were a rolling problem across the world, when they were applied varied by country and religion of the recorder of historic accounts - they were by no means uniformly applied in the same year across the planet.
I like the story of how the portuguese sailed east, and the spanish sailed west, and by the time they met each other (Macau trading with Manila?) there was a day dislocation between the two empires. Nowadays we have timezones and an International Date Line* to solve the underlying issue, but back then it seems as if no one was surprised that calendars would be off by certain numbers of days between ports, and merely took it in stride.
* shout out to Kiribati (UTC+14)! I'd like to think the bronze age danes rocked their string skirts in much the same way the Kiribati do their "grass" [pandanus] ones. https://www.youtube.com/watch?v=ZUhs1TdHMt0
We really should just declared the year to be 360 days long, with 12 months, 30 days each, split into 6 day long weeks. The extra 5 days? Everybody take a vacation. Leap days go in there too somehow. Every month starts with a Monday and ends with a Sunday. Wednesday will be removed because it was no good anyway.
For the part that depends on the last two digits of the year I use a method that I've not seen anywhere else. It is algorithmically more work than Conway's method (Y + Y//4, where Y is the last two digits of the year and // is integer division rounding positive results down), but I think is easier for quick mental computation for most people.
Let Y = 10 T + U, i.e., T is the first digit of the two digit year and U is the second digit.
If T is even, the year part is:
2 T + U if U = 0, 1, 2, or 3
2 T + U + 1 if U = 4, 5, 6, or 7
2 T + U + 2 if U = 8 or 9
If T is odd:
3 + 2 T + U if U = 0 or 1
3 + 2 T + U + 1 if U = 2, 3, 4, or 5
3 + 2 T + U + 2 if U = 6, 7, 8 or 9
Algorithmically I compute it something like this:
Compute 2 T + U
If T is even
Add 1 if T >= 4 and add another 1 if T >= 8
else
Add 3
Add 1 if T >= 2 and add another 1 if T >= 6
Those add 1s come from the way leap years are distributed within decades. The 2 T + U takes into account any leap years when U = 0. The add 1s are to take care of the leap years that happen when U != 0. In even decades those occur at 4 and 8, and in odd decades they occur at 2 and 6.
Example: for 2024, T=2 and U=4. Mentally my train of thought would be:
2 doubles to 4, plus 4 = 8 = 1 mod 7, even decade so add 1 for 4 <= T < 8 giving 2.
For that example there is not really easier than Conway's Y + Y//4, which would be 24 + 6 = 30 = 2 mod 7.
Example: for 2099, T = 9 and U = 9. Mentally that goes something like this:
9 = 2 mod 7 doubles to 4, add 9 = 2 mod 7 giving 6
T was odd so add 3 giving 9 = 2 mod 7
T was odd so the so there were leap years at 2 and 6, which each add 1
That gives us 4
I find that easier that Conway's 99 + 99/4. I can do that, and at decent speed, but I can make mistakes.
With my method you never have to deal with a number above 32, and that's only if you do no reductions mod 7 along the way. If you reduce mod 7 whenever you can you never have to deal with anything above 12.
Note: when reducing mod 7 along the way it is crucial to remember that whether you take the T is even case or the T is odd case depends on the actual value of T. E.g., when I am doing 2099 I reduce both T and U to 2 right away but first note that 9 is odd so will need to take the odd case.
I'm reminded of the scene in Back To The Future II in which people in the 19th century scoffed that someday someone might "run for fun" despite the ubiquity of motorized transportation.
JH Conway used a different technique[1] which I have swutch to when computing days in the current year. It's quicker and easier, but I find that it's harder to compute "The Doomsday" for other years (it's Thursday this year), so I revert to my standard method[2].
Example: Today is 2024/05/24
[0] A "magic number" for each month. There are mnemonics, and they can be computed from first principles if needed. It's also easy to remember a few and then compute the others. [1] https://en.wikipedia.org/wiki/Doomsday_rule[2] All values computed mod 7. Take years since 1900. Add number of leap years since 1900 (so (YYYY-1900)/4 rounded down). Add the magic number for the month. Add the day of the month. Then Sunday=1, Wednesday=4, etc.
Because the calendar repeats every 28 years, for more recent dates you can start with 2012 instead of 1900.