January 6, 1800
The Julia example (supplied by the task writer) claims January 6, 1800 was a Sunday. However, I am pretty sure it was a Monday (that's what I get when I try to implement it, and both Linux
cal and WolframAlpha also agree with me).
I think the leap year determination is wrong in the Julia example. It says:
(year % 4 != 0) || (r == 0 && year % 400 == 0) ? # leap year determination
r is the year modulo 100.
I don't know Julia but it seems that this checks whether the year is divisible by 4, and if not, by both 100 and 400. It should be (divisible by 4 and ((not divisible by 100) or divisible by 400)). Surely this should instead be:
(year % 4 != 0) || (r == 0 && year % 400 != 0)
This is correct, and comes from mixing up == and !=. Fixed.
Sunday is 7 not 0
- I rather suspect that being 7 mod 7 is 0, not 7, most programmers would rather use consistent operators and indexing and avoid adding unnecessary complexity rather than mindless conformance to some external standards format that has little to do with how such indexes are calculated... but that's just me. --Thundergnat (talk) 18:50, 1 June 2021 (UTC)
Conway actually made up mneumonic names for the days of the week to fix his scheme, and these are NOT the ISO standard (see Wiki entry).