The cronos4j project is going to help you write complicated domain logic to handle timelines. Typically a domain or database model captures the situations as is on the current moment. Database rows typically represent some fact in the real world. An example would be car ownership: Fred owns the red Porsche. When he sells it to Bill the database would record Bill owns the red Porsche.
However a speed ticket might register a 75 km/h speed violation on juli 12 at 16:23 by red Porsche. The fact that Bill now owns it is useless if we donot know since when he owned it. In fact we need to know who owned it on juli 12.
To solve this a timeline is required. And this is the central datastructure in the project.
This library wil help you handle domain logic that is needed to handle historical data. We wil strive to encapsulate the temporal logic in separate components to avoid domain logic an temporal logic to intermix.
This project is not about handling dates and calendars. The Java system library has classes like Calendar, GregorianCalendar en Date (java.util). And there is a joda-time library that handles time as value classes. We favour this approach and we wil make extensive use of joda-time for performing time calculations.