This reminds me of the Doomsday algorithm¹. The doomsday for 2020 falls on a saturday, which is aligned neatly as the diagonal in the one page calendar. Once you know the doomsday of a given year, you can calculate the day of week for any date in that year in your head. [1] http://rudy.ca/doomsday.html
Show HN: One Page Calendar 2020
91–100 of 108 posts
Re: Show HN: One Page Calendar 2020
#92For the last 3 years I've been printing several copies of the Compact Calendar by David Seah [1]. It's as its name implies a compact form calendar that spans the whole year in a single page, and leaves enough side space to annotate stuff as needed. It's very cool and useful, although it would be nice having an open-source based version (i.e. LibreOffice), for those of us that don't have an MS Office license... [1]: h…
Wow I just discovered that it's uBlock Origin that totally breaks the page layout. Which means that for some reason this page's CSS are detected as an ad source, and blocked! Curious, as it seems to be a plain and simple static site. EDIT: It is the "AdGuard Annoyances" optional list, which is disabled by default but I like to enable: https://kb.adguard.com/en/general/adguard-ad-filters#annoyan...
Re: Show HN: One Page Calendar 2020
#93Free - A 200-year calendar that is different from the rest. http://trackstar.4teachers.org/trackstar/ts/viewTrackMembers...
Re: Show HN: One Page Calendar 2020
#94For the last 3 years I've been printing several copies of the Compact Calendar by David Seah [1]. It's as its name implies a compact form calendar that spans the whole year in a single page, and leaves enough side space to annotate stuff as needed. It's very cool and useful, although it would be nice having an open-source based version (i.e. LibreOffice), for those of us that don't have an MS Office license... [1]: h…
Much cleaner than putting them all on the same calendar and fight for space.
Re: Show HN: One Page Calendar 2020
#95Re: Show HN: One Page Calendar 2020
#96Re: Show HN: One Page Calendar 2020
#97What a miracle!
Re: Show HN: One Page Calendar 2020
#98This reminds me of the Doomsday algorithm¹. The doomsday for 2020 falls on a saturday, which is aligned neatly as the diagonal in the one page calendar. Once you know the doomsday of a given year, you can calculate the day of week for any date in that year in your head. [1] http://rudy.ca/doomsday.html
The Doomsday is the sum of a factor determined by the century part of the year and a factor determined by year within the century.
The century factor is:
Century Factor
20xx 2
21xx 0
22xx 5
23xx 3
This pattern repeats every 4 centuries indefinitely forward, and however far back you can go in your jurisdiction before you hit whatever calendar that was used there before the Gregorian calendar. (If you want a formula for this, it is 2 + (C % 4) x 5, where C is the first two digits of the year, but since there are only 4 items in the pattern, and most people will actually only care about one or two centuries, I'd just memorize the relevant factors).For the factor determined by the year within the century, let T be the tens digit of that year and U the ones digit.
If T is even, the factor is:
2 x T + U + LE(U)
I'll cover LE below.If T is odd, the factor is:
2 x T + 3 + U + LO(U)
LO() and LE() are corrections to take into account leap years in years where U != 0. Leap years when U = 0 are already accounted for in the 2 x T. Here are LE() and LO(). LE(U) = 0 if U
Or in English, in even decades add 1 if U >= 4, and add another 1 if U >= 8. In odd decades, add 1 if U >= 2, and another 1 if U >= 6.Example: 2020. Century 20 factor = 2, T=2, U=0. T is even. Doomsday is 2 + 2 x 2 + 0 + 0 = 6 (Saturday).
Here are the years used for some of the examples in the link you gave.
2019. T=1, U=9. We've got an odd T, and a leap year correction of 2. Century is still 20. That gives us 2 + 2 x 1 + 3 + 2 + 2 = 4 (Thursday). I've taken the liberty of reducing mod 7 along the way, so used 2 instead of 9 when adding in U. Note that when figuring the leap year factor you have to use the actual U, not U mod 7.
2018. 2 + 2 + 3 + 1 + 2 = 3 (Wednesday).
2017. 2 + 2 + 3 + 0 + 2 = 2 (Tuesday).
2069. 2 + 2 x 6 + 2 + 2 = 4 (Thursday).
1929. 3 for 19xx. 3 + 2 x 2 + 2 + 2 = 4 (Thursday).
1999. 3 + 2 x 2 + 3 + 2 + 2 = 0 (Sunday).
1982. 3 + 2 x 1 + 2 = 0 (Sunday).
1969. 3 + 2 x 6 + 2 + 2 = 5 (Friday).
2167. 0 + 2 x 6 + 0 + 1 = 6 (Saturday).
Re: Show HN: One Page Calendar 2020
#99Another improvement IMO would be to list e.g. 'June (30)', since at the moment the #days in each month is lost to compression.
Re: Show HN: One Page Calendar 2020
#100For the last 3 years I've been printing several copies of the Compact Calendar by David Seah [1]. It's as its name implies a compact form calendar that spans the whole year in a single page, and leaves enough side space to annotate stuff as needed. It's very cool and useful, although it would be nice having an open-source based version (i.e. LibreOffice), for those of us that don't have an MS Office license... [1]: h…
Oh cool! I happened to build something similar a while back, because I was frustrated with the way that the Unix `cal` program laid out all the months in a 3 x 4 grid instead of in a continuous format: https://github.com/jez/calz So for example to get the same year-long calendar view as the Compact Calendar would have, I can type calz 2020 calz has a couple other features too which make it nicer to use than `cal`, bu…
Now I just need a really long e-ink screen.