Work is in the earliest stage of development.
This library provides tools to work with the person-centric calendar (which I currently call 777-calendar) that I have invented to use for various purposes and for fun. The tools help to easily convert dates between Gregorian and 777-calendar.
The main ideas of this calendar are:
- It's epoch is a person's birth date, and year changes happen on birthday.
- It has 7 months (currently called meriods), every such meriod has 7 weeks, and every week has 7 days.
- These 49 weeks of the calendar share days of the week with the Gregorian date; remaining 22 or 23 days of the year are distributed in the special meriods 0 and 8, before and after (inclusive) the birthday respectively. In total these 2 meriods contain 3 or 4 weeks so that Gregarian weeks and 777-calendar weeks are still in sync. That means one year in 777-calendar could have 364 or 371 days (out of 28 years, 5 years will have 371 days and 23 years will have 364 days).
- The date is written as
<year>.<meriod>.<week>.<day>
(such as 29.2.5.1) or as<year>.<meriod>.<day>
(such as 29.8.3, for days near birthday).
Exact calendar rules are described in sevencal/sevencalendar.py.
- Support both python 2 and python 3 and test both with test script
- have better tests
- Add link to calendar explanation
- add alternative str methods
- add coding guidelines
- add development notes
- make library in JavaScript (well, initially thought of making this is JavaScript, python version is just a coincidence, because I was too lazy for couple of years and forgot)
- Add links to projects related to the calendar
Sometimes I use a system to write a date with origin as my date of birth. So I write this software to automatically convert dates to/from my calendar.
The project is licensed with the MIT license, you can find it in the LICENSE file.
- Add more tests.
- Add more examples in explanation.
- Add offset argument in command-line tool.
- Add method to parse from datetime and use it in command-line tool.
- Add command-line options in tool for date to parse and birth date.