98 ms·
Show HN: One Page Calendar 2020
- auslegung 7y agoThat’s neat! Took me a few second to figure it out :)
- rhizome31 7y agoMe too, the rollover on cells makes a bit confusing because it suggests interactivity that is actually not there.
- simonw 7y agoThere's a rollover? That explains why I was puzzled that it didn't seem to have any interactive elements: I'm on mobile.
- puran1218 7y agome too, I finally figure it out that one month only loop in one column.
- csallen 7y agoWhere's the 21st?
- spongeb00b 7y agoReuse one of the 18ths
- _jal 7y agoI'd rather keep one of mine as a spare. I frequently find myself needing more time around the middle of the month.
- mynegation 7y agoProbably copy paste error. There are two of 18.
- teekert 7y agoHow does one change the year then?
- asdf21 7y agoFirst, you create the universe. Then you build a new year of the calendar.
- 0xdeadbeefbabe 7y agoThen you argue.
- deleted 7y ago[deleted]
- blondin 7y agothis is super cool!!
- cmstoken 7y agoVery cool, but missing 21st.
- grenoire 7y agoNot sure why, but it seems like the script which appends the 'today' class to today's cell doesn't seem to be working.
- underdeserver 7y agoPerhaps it's not 2020 yet.
- deleted 7y ago[deleted]
- chewzerita 7y agoJust increment the 20, 19 and second 18 and it should be correct.
- akavel 7y agoI'd guess the count of a particular month's days could be shown next to its name as an aid? Esp. given that Feb tends to have it different in different years (https://en.wikipedia.org/wiki/Feb_29 https://en.wikipedia.org/wiki/Feb_29). Also, a somewhat related purely-mechanical idea I recently learnt of and liked: https://www.etsy.com/listing/570041707/desk-wood-eternal-calendar-accessories https://www.etsy.com/listing/570041707/desk-wood-eternal-cal...
- sloucher 7y agoGood to know that Feb 31st falls on a Monday this year :-) Love it though.
- deleted 7y ago[deleted]
- 7777fps 7y agoIt's just wrong isn't it? It says Jan 20 is a Tuesday. It isn't.
- bostonpete 7y agoHa, yeah, there's two 18's and no 21
- niklasrde 7y agoMay 20th is also not a Thursday.
- bhelkey 7y agoThere are two 18s, the 19 should instead say 20 ... old -> fixed 17 -> 17 18 -> 18 18 -> 19 19 -> 20 20 -> 21 ...
- ai_ia 7y agoA feature addition: Clicking on a particular month, should select its column and decrease the opacity of other months. Will increase readability.
- IndrekR 7y agoThe date 18 is double and 21 missing.
- yboris 7y agoRelated: The Compact Calendar by David Seah https://davidseah.com/node/compact-calendar/ https://davidseah.com/node/compact-calendar/ I print this every year for almost a decade now!
- xwowsersx 7y agoWoah this is so clever!
- sys_64738 7y agoWhy not simply do 'cal 2020' and embed it in HTML?
- daw___ 7y agoI'm not really sure what I am looking at. EDIT: Now I am. Clever!
- bobongo 7y agoI still am not. Could you explain?
- laszlokorte 7y ago2d lookup table for (month,day) -> weekday
- knolax 7y agoTo find the current day of the week, look at the row corresponding to the day of the month and the column corresponding to the month. There's a typo for the days 18-21 where there's two 18s.
- yepthatsreality 7y ago- Source code? - Is this generated using a known algorithm? Can the same trick be applied to other years? Very cool idea!
- asdf21 7y agoIt looks like it's currently manual, considering the double date on the 18th
- wccrawford 7y agoIt seems like it should be able to be done programmatically, though. It suddenly seems like a neat project.
- ekianjo 7y agoWhat happens with the two 18s?
- j1elo 7y agoFor 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]: https://davidseah.com/node/compact-calendar/ https://davidseah.com/node/compact-calendar/ (not sure why but upon checking the website I'm seeing all text and links scrambled in the page, probably the author inadvertently broke it during an update)
- j1elo 7y agoWow 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#annoyances https://kb.adguard.com/en/general/adguard-ad-filters#annoyan...
- deleted 7y ago[deleted]
- bscphil 7y agoIt's also blocked by Fanboy's annoyances list. It's a generic blocker, /wp-gdpr, probably designed to block a Wordpress plugin's GDPR banner. My guess is this site is using such a plugin, and then stuck the rest of its CSS in the plugin's folder instead of a generic folder like CSS, so it ends up blocked there too. You can whitelist this URL on the site if you want without having to whitelist the site as a whole.
- colejohnson66 7y agoWhat do you mean “open source”? XLS is the (previously proprietary) format used by older versions that’s (basically) just serialized structs. XLSX (which I see here) is the ZIP/XML based version based on an open standard[0][1]. LibreOffice opens those just fine from my experience; It’s the older binary format that LibreOffice can screw up with formatting. [0]: https://en.m.wikipedia.org/wiki/Office_Open_XML https://en.m.wikipedia.org/wiki/Office_Open_XML [1]: ECMA-376, http://www.ecma-international.org/publications/standards/Ecma-376.htm http://www.ecma-international.org/publications/standards/Ecm...
- app4soft 7y agoIts not clear about such limitations as Feb <= 28/29 & Apr/Jun/Sep/Nov <= 30
- jrockway 7y agoYou can tell that 2020 is a leap year because if you look up the day of the week for Feb. 28, it's Friday, and March 1st is a Sunday. That must mean that Feb. 29th is a Saturday. And indeed it is.
- deanclatworthy 7y agoCan someone ELI5?
- DHPersonal 7y agoIt took me a while, but I think I have it: choose a month of the year in the blue table and read only the column pertaining to that month. The column has seven days within it and the first day in the column matches the first day of that month; then, increment each day and date until reaching the maximum for the month and proceed to the next month in its matching column. Never move right to left in the blue month table as if moving through a standard calendar's format; only loop through the column for the current month from top to bottom.
- bithaze 7y agoPick a month on the top, pick a day of the month on the left, find the day of the week in the row/column intersection.
- deleted 7y ago[deleted]
- catchmeifyoucan 7y agoThis is super cool. Since I usually read Month, Date, Year - would've been awesome if the months/day was on the left. Took me a minute to read it - but makes a lot of sense.
- kryogen1c 7y agohow in the holy hell do you read this? there are only 5 dates columns; how do you read days in month columns 6 and 7 (feb aug mar nov)? am i suppossed to matrix multiply this thing or what. im not normally too dumb for things but boy this is totally opaque to me.
- thomascgalvin 7y agoThe dates in a row correspond to the days beneath a month in the same row. EG the 1st, 8th, 15th, 22nd, and 29th of January, April, and July all fall on Wednesday. Or, May 18th is a Tuesday.
- xwowsersx 7y agoI think the idea is this: 1. On the left under "Dates" are the consecutive days of the month if you read column by column (of course not every month has 31 days). 2. The rows represent intervals of a week (hence each square is previous + 7). 3. Look first at the top left cell with June and Monday. That lines up with the days of the month 1, 8, 15, 22, 29. That's because those are all the Mondays of June. 4. Next row (same column) shows similar: The Tuesdays of June are 2, 9, 16, etc. So you can start with any month (the columns) and look at the first row underneath to see which day of the week the month starts on and then follow the dates from there using the above logic.
- everdev 7y agoI'm guessing you locate your month on the top, then locate the day of the month and it tells you what day of the week it is. It's an interesting design exercise, but I can't imagine people using this day to day.
- benatkin 7y agoMy thought was "Your calendar is bad and you should feel bad." It's a reference and I don't actually mean that, except as a reaction to seeing it after clicking the title on HN which had me expecting something I might want to use.
- timfrietas 7y ago
- joelanman 7y agoA few years back I took part in an online design challenge to make a pocket calendar - it was a lot of fun, my designs are here: https://www.flickr.com/photos/joelanman/albums/72157594502722552/ https://www.flickr.com/photos/joelanman/albums/7215759450272... One of them is very similar to this one (Design 2) - I was tidying up someone else's idea. Dunno if David Seah's was related in any way or just people came up with the same idea.
- barroomhero 7y agoDesign 3 is quite nice. For me, it's the quickest to read.
- alabut 7y agoAgreed. I love stacking the months like that and turning it into a never-ending river of days, looks like it'd be easier to estimate the length of time between two different months.
- joelanman 7y agoupdate - here's the original calendar design challenge: http://www.elzr.com/blag/infodesign-challenge/ http://www.elzr.com/blag/infodesign-challenge/
- QueensGambit 7y agoThese upvotes prove that there is opportunity for products to be clever, but not simple. For every windows like product, there is an opportunity for command line tool.
- crobertsbmw 7y agoClever but not simple? I have a hard time believing that people want to sacrifice simplicity for cleverness. But I see your point about people preferring a CLI than a web portal. I guess simplicity is in the eye of the beholder. What's simple for me, can often be wizardry for my dad.
- dmos62 7y ago> simplicity is in the eye of the beholder My example of this is git. I find it very complex, but it's clever, and very useful.
- QueensGambit 7y agoAt the risk of facing the wrath of developers, they also choose products that are not are not necessarily clever, but makes them clever. e.g: IaaS Vs PaaS, C++ Vs Visual Basic etc. Developers usually say that abstraction doesn't give them enough control/flexibility. That might be true in some cases. But in most cases, they are afraid that abstraction will make them dumb, instead of making them clever.
- kohtatsu 7y agoI think that's a stretch. I like the calendar, but from what I can tell it's only useful for looking up the day of the week that a date falls on; shrinking it like this is similar to lossy compression. With a moderate amount of practice you can also calculate a weekday given a date in your head! (Though I'd rather use this w) https://plus.maths.org/content/what-day-week-were-you-born https://plus.maths.org/content/what-day-week-were-you-born So this is not exactly a "product"; people wouldn't fork over money for this. It's a neat design concept. To add: CLIs aren't necessarily clever (I'd add rarely clever), and Windows-like products can often be far from simple. There are learning curves involved, but I think that's (mostly) a separate matter than simplicity/cleverness. Again I think this calendar is cool, props to OP for thinking outside the box and making something for the new year~
- intrepidhero 7y agoThis is pretty clever and I admire the author for coming up with an elegant way to show the mapping of week days to dates. I'd be particularly interested to see the algorithm behind it. Date computations are very tricky. A few years ago I made script to generate a one page calendar because the ones they hand out at work are particularly ugly. In addition to showing the date<->weekday mapping I also wanted it to show holidays and pay periods. This is one of the (few) things stuck on my wall. https://intrepidhero.gitlab.io/mkcal/cal2020.html https://intrepidhero.gitlab.io/mkcal/cal2020.html https://gitlab.com/intrepidhero/mkcal https://gitlab.com/intrepidhero/mkcal
- kohtatsu 7y agoGenerate grid (it's static); Find first weekday of month using your favourite algorithm; Print month's name above the column that begins with that weekday.
- intrepidhero 7y agofavourite algorithm is left as an exercise to the reader. ;-)
- zamadatix 7y agoFavorite algorithm can be as simple as "look at the first day of each month on a normal calendar".
- IshKebab 7y agoDate computations like this are not at all tricky.
- thescribbblr 7y ago18 is double, 21 is missing
- litoE 7y agoHas anybody noticed that, starting tomorrow, the current day of the week, day of the month and month will be highlighted, with the highlighting changing correctly every day?
- ChrisSD 7y agoWhat's cool about this representation is just how compact you could make it. Forget a page, this could fit on a card in your pocket. EDIT: A very quick (and rough) example: https://i.postimg.cc/nLrStmBt/micro.png https://i.postimg.cc/nLrStmBt/micro.png
- abhchand 7y agoGreat concept. I would've prefered an option to switch the days of the week and dates of the month. That way the numbers loop and the day of the week is fixed as a row/column header. That's more similar to how we read usual wall calendars.
- kseistrup 7y agoThis 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 http://rudy.ca/doomsday.html
- kseistrup 7y agoAnd in fact: Just knowing that the doomsday of 2020 is a saturday, I was able to construct the entire one page calendar with pen and paper in a couple of minutes.
- surround 7y agoYou should submit that to HN.
- tzs 7y agoHere's a probably faster/easier way for most people to compute the Doomsday for a given year. 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 < 4 LE(U) = 1 if 4 <= U < 8 LE(U) = 2 if 8 <= U LO(U) = 0 if U < 2 LO(U) = 1 if 2 <= U < 6 LO(U) = 2 if 6 <= 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).
- deleted 7y ago[deleted]
- pbamotra 7y agoFree - A 200-year calendar that is different from the rest. http://trackstar.4teachers.org/trackstar/ts/viewTrackMembersFramesMember.do?key=org.altec.trackstar.om.TrackMember;track_member_id[180015] http://trackstar.4teachers.org/trackstar/ts/viewTrackMembers...
- zamadatix 7y agohttps://upload.wikimedia.org/wikipedia/commons/7/74/Permanent_Calendar_gregorian.png https://upload.wikimedia.org/wikipedia/commons/7/74/Permanen...
- 99chrisbard 7y agoOne page Calendar https://imgur.com/a/aNtq0d3 https://imgur.com/a/aNtq0d3 Print it and store in your mobile phone case or wallet. I use this at work because what day is the end of the month is important for me.
- romdev 7y agohttp://sciral.com/free/year.html http://sciral.com/free/year.html has worked for me for several years.
- davmar 7y agohttps://www.youtube.com/watch?v=kY-pUxKQMUE https://www.youtube.com/watch?v=kY-pUxKQMUE
- HocusLocus 7y agoWith JS turned off the page is not blank! What a miracle!
- OJFord 7y agoIt took me stupidly long to work out how to read it, which I think was just because days don't progress in the usual way, i.e. avoided if months were swapped to the rows, and days read across. Another improvement IMO would be to list e.g. 'June (30)', since at the moment the #days in each month is lost to compression.
- dbfa 7y agoAuthor here. Thanks for noticing the mistake! It's fixed now :) Happy new year!
- deleted 7y ago[deleted]