Hi,
Some Date and Time features I needed for projects I was doing, was missing in the Date and/or Time libraries that were available at the time. I wrote my own library, mainly to be used in those project.
Now, I am starting to see it could become more, so I am thinking about publishing it and I would like some help with that. (Time for the hard part ) It is on github, btw: fmechant/chrono
In essence I am asking, do you think the library is interesting, helpful and ready to be published?
If not, what is needed?
How to Help
- Feedback on the terminology:
- Is it easy to understand, do you immediately understand what is meant?
- Feedback on the API:
- Can you easily find what you are looking for?
- Is it easy to work with?
- Is what you are trying to do easy?
- Is it idiomatic to Elm?
- Missing features:
- Looking forward to a feature you are not finding?
- Enough, clear documentation:
- Is there enough documentation?
- Is it clear enough?
- Does it need more examples?
- Correctness, testing:
- Is there a case where you think the library is wrong?
- Is it missing a test you would like to see?
Help with Missing Time Zones
Since we are using another implementation of time zones, we still need a library that
takes the tz database and makes time zones from that. Similar to justinmimbs/timezone-data.
Some help making that would nice .
Some History
So, what was missing at the time?
Stuff like:
- Convert a date to the next working day.
- If you have a date and a time, tell me if it is now earlier or later.
- If I get a Posix, is it between date/time this and date/time that (in a time zone, of course).
- Convert date/time from and to posix (with time zone, of course).
So, I started writing a library myself to be able to easily do these things. Not on project time, but on my own free time. I wanted to tackle these problems myself, on my own pace.
Then, I found out how complex date/time really is, being confronted with daylight savings time problems, leap seconds and things like that. So, I started investigating and further adapted my library.
The focus was on how to make the library be correct, but still be easy to work with.
Then I realised that a time zone is actually just a collection of (bijective) mappings between date/time and moments in time. I started modeling my library like this, and all of a sudden, implementing the library became easy. Well, easier .
I started thinking it might be useful for everybody, so I added lots of documentation, fine-tuned here and there.
And now, I think I am ready to stick my head out and do the hard part. Please be nice
fmech