hroptatyr / dateutils

nifty command line date and time utilities; fast date calculations and conversion in the shell
http://www.fresse.org/dateutils/
Other
615 stars 42 forks source link

Add support for Symmetry454 #102

Open HalosGhost opened 5 years ago

HalosGhost commented 5 years ago

Symmetry454 is an alternative calendar which fixes a great deal (all?) of the poor design decisions of the Gregorian calendar. Below is my short-list (cherry-picked from the above link):

Additionally, it has many benefits over other alternative calendar proposals (namely that there are no days outside of a week or month, and that it still retains four equal (or practically-equal) quarters of 12 months).

Put as simply as possible, the full specification of the calendar can be summarized by this passage:

Common year 52 weeks = 4+5+4 weeks/quarter, append 7 days if remainder of (52×Year+146)/293<52; months start Monday; epoch Jan 1, 1 AD.

I am toying around with an implementation of cal for Sym454, so I would be happy to help in this effort!


  1. Only exception being December has having an extra week during leap years (leading to the fourth quarter having 4,5,5 weeks)
hroptatyr commented 5 years ago

Hey Sam, thanks for the input. It's a very interesting read and I, too, think it's a nice alternative to the Gregorian calendar.

However, my concern is that dateutils is to a vast extent about notation and conversions between notations (ISO versus local formatting, etc.) I'm afraid with the lack of any apparent syntax apart from the obvious one (e.g. 2019-02-33) it would confuse users. If only one could stipulate that years in the 454-calendar start with a letter or so, like C019-02-33 (C for 2 when A is 0 and B is 1), this would aid adoption and eliminate ambiguity.

What exactly would you like to see? A list of ISO Gregorian dates converted to/from 454-dates? What would you cal tool look like? I mean you could just hardcode the layout and fputs it.

HalosGhost commented 5 years ago

well, my cal version is definitely going to be much simpler than the original. But, it will do the leap-year detection and add the extra week in december if necessary. Additionally, it will do the basic mapping of the unix epoch to 454 dates so that the current day can be highlighted as it is in the official one.

the idea of dateutils as being for notation is interesting; I hadn't thought of it that way. I suppose my initial thought was for dateconv (so that converting between Gregorian and sym454 could be more seamless for folks).

sergeevabc commented 1 year ago

@HalosGhost, have you found anything 'better' than Symmetry454 since 2019?

HalosGhost commented 1 year ago

Honestly, so far, Symmetry454 remains the most compelling calendar proposal for me. I'm slowly working on a calendar-date-interchange library and Sym454 is intended as my first target for full implementation. :)