Hi Benoit, Did you have a look at the "holidays" subproject in the contrib repository ? It might not do all you need, and I suppose Stephen will be able to tell you more about it (and its state), but I suspect it could be at least at starting point for what you need.
Cheers g On 04/08/06, Benoit Xhenseval <[EMAIL PROTECTED]> wrote: > > > > > Dear *, > > > > I'm a fan of Joda time, especially the simple, immutable > LocalDate/LocalDateTime (and formally YearMonthDay/DateTime). However, > these are the basic building blocks. I feel that every time I join a > financial project I have to re-do the same things and I'd like to suggest an > add-on/contribution/sub-project to Joda time. It could become the reference > implementation. > > > > The issue is of calculating "next good business" dates for the financial > industry (or anything else that has 'holidays'). For a given date, we need > to talk into account 2 parameters on top of a date: > > 1/ a set of holiday/non-working days > > 2/ a piece logic to define what to do if we fall on a holiday > > > > The most obvious ones are: > > 1/ do nothing, fall on a holiday but set a warning flag of some sort > > 2/ move forward 1 day until you fall on a working day, known as "forward" > > 3/ move backward 1 day until you fall on a working day, known as "backward" > > 4/ move forward 1 day until you fall on a working day, unless you cross into > a new month in which case you reverse to a backward way; known as "modified > forward" or "modified following" > > 5/ move backward 1 day until you fall on a working day, unless you cross > into a new month in which case you reverse to a backward way; known as > "modified backward" > > > > The set of holidays can be explicit dates but we should also be able to > consider weekends as holidays or not (in a flexible manner as some markets > are closed Friday and Sunday but open Saturday). > > > > I have done this in the past and I am quite open to provide a first shot > with a tad of guidance from Joda to make it efficient. > > > > The way I did this in the past is by defining a small inheritance structure > e.g. ForwardCalendar, BackwardCalendar, etc such a calendar would: > > - accept a set of LocalDate (should they be kept as dates or > something smaller?), or should we use DateTime instead, my feeling is that > LocalDate is enough. > > > - take a startDate (again LocalDate) > > > - have a (unique) name > > > - have some methods like: plusDays(…), plusBusinessDays(…) this > modifies the value inside the Calendar and a getLocalDate() returns a > LocalDate. The difference between plusDays(int) vs plusBusinessDays(…) is > that the first one does the check only on the calculated date: start+offset, > whilst the second one moves the date by a number of business days (i.e. if > you have a holiday in the middle of the offset, you will move further). > > > > Next steps could include calculating the next IMM dates, IMM dates between 2 > dates, handling tenors (1m,5y,S/N/, T/N, etc) and day count (with soooo many > conventions) etc… this would become extremely valuable… > > > > Is there an open source project for this? Has anyone done this? Would they > be willing to open source it? Would they be willing to help? > > > > Would Joda-Time accept their contribution as an add-on (joda-financial for > instance). > > > > Steve, any suggestion, we can discuss offline if you want. > > > > > > Best regards > > > > Benoit > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > Joda-interest mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/joda-interest > > > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Joda-interest mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/joda-interest
