Please note: This page is still a work in progress.
The Gregorian calendar, a revised version of the Julian calendar from Roman times, is filled with design flaws as a result of historical bodgery:
Most of the above problems are solved by switching to a better designed perpetual calendar (one which is essentially the same every year).
Some options are outlined below.
This calendar separates the year into 13 equal months, each with 4 weeks (28 days). This brings the total number of days in the year to 364.
You might notice that 364 is 1 day short of the 365 days required each year. To solve this, an additional day is added at the end of the year (so the 13th month has 29 days).
To avoid the problem of inconsistent start days, the additional day is excluded from the normal weekday naming convention (so it's not part of a normal week).
In leap years, a second additional day is added, either at the end of the 7th month (to create a 29-day 7th month) or by adding a second additional day at the end of the year (so the 13th month has 30 days). Like the first additional day, the second additional day is also excluded from the traditional weekday naming.
In this calendar, the first day of the week is normally Sunday, although some variants exist where the first day is Monday. If it were to be adopted, the first day would have to be agreed, and it would then be fixed for everyone adopting the calendar.
In the early 1930s, the League of Nations (the precursor to the United Nations) held an international conference on calendar reform. The 13 month calendar was selected as the best option out of 130 submitted proposals (competing mainly against a calendar design called the World Calendar). Reforming the calendar faced opposition, including from a Jewish rabbi, as well as American politicians. The conference floundered, and discussions never went anywhere. The plan was abandoned as a result of World War II and we never ended up with a reformed calendar.
This calendar is a little closer to the Gregorian calendar in that it still has 12 months, so quarters are still a thing. Months can either be 28 days (4 weeks) or 35 days (5 weeks) in length. The first and last months of each quarter are 4 weeks long, and the middle month is 5 weeks long. This creates a 4-5-4 pattern for month weeks, with each quarter being 91 days (13 weeks) long.
The first day of the week is always Monday.
You might notice that 91*4=364, so yet again we have years that are 364 days long. We need to do something to handle the 1 or 2 days that are missing.
The solution for this in Symmetry454 is to introduce "leap weeks" rather than "leap days". A leap week is exactly that - an extra week inserted into the year. During leap years, the last month of the year is 5 weeks long rather than 4 weeks (creating a 371 day year during leap years). This avoids having to have days that exist outside of the traditional 7 day week length, so the day of the week continues to line up comfortably with the Gregorian calendar, resolving some of the biggest problems of the 13 month calendar.
Due to the use of leap weeks instead of days, the rule for assigning leap years needs to change. Symmetry454's offical leap year cycle lasts 293 years, spacing the 52 needed leap years as evenly as possible. The formula to determine if a year is a leap year is ((52*Year)+146)%293 < 52 (if this is true, the year is a leap year).
I really like the Symmetry454 calendar. I have designed a revised version of Symmetry454 with some adjustments as follows:
The start date for the new calendar is the first Monday of March in the year 2000, which is given the date of 1-A-2000. This lines up with Monday 6th March 2000 of the Gregorian calendar. 1-K-2000 lines up with Monday 1st January 2001. 1-A-2001 lines up with Monday 12th March 2001.
I still need to find a mathematical formula to determine if a year is a leap year in order to keep the position of Christmas Day fixed to the 4th week of month J. In this respect, both Gregorian and Symmetry454 have better leap year rules, as a year being a leap year is substantially easier to calculate in those calendars. At the moment this is the largest weakness of the revised 454 calendar in my opinion. It is plausible this restriction could be dropped, but it's something I really want to try to keep.
In the meantime, here's a placeholder mechanism which gives the correct result (although it sucks).
Get the day-of-the-week of the Gregorian calendar's December 31 for both the year being checked and the year after it. If the year you want to check has a day-of-the-week that comes later than the following year's day-of-the-week, this year is a leap year. (For application of this rule, Sunday is considered the last day of the week.)
Starting with the year 2000, the leap years would be as follows: 2000, 2006, 2011, 2017, 2023, 2028, 2034, 2039, 2045, 2051, 2056, 2062, 2067, 2073, 2079, 2084, 2090, 2095, 2102, 2107, 2113, 2119, 2124, 2130, 2135, 2141, 2147, 2152, 2158, 2163, 2169, 2175, 2180, 2186, 2191, 2197, 2203, 2209, 2215, 2220, 2226, 2231, 2237, 2243, 2248, 2254, 2259, 2265, 2271, 2276, 2282, 2287, 2293, 2299, 2305, 2311, 2316, 2322, 2327, 2333, 2339, 2344, 2350, 2355, 2361, 2367, 2372, 2378, 2383, 2389, 2395.
This pattern repeats every 400 years.
These are some conceptual placeholder month names derived from Latin. They all end in "us". I tried to keep them themed based on the season.
For a live demo which shows the current date in the revised 454 calendar, click here.
(The demo uses the conceptual Latin-derived month names.)