Alex Rivera | Logout

Holidays - is there a java implementation?

Asked 2010-08-02T14:24:05.787
64

I'd like to know if there is a jar-file out there that could do the following:

DateMidnight dateInQuestion = new DateMidnight(12,12,2000);
DateChecker.isNationalHoliday(dateInQuestion, Locale.ITALY);

If there isn't, why? Surely there are lots of properly based rules for the holidays in 99% of the times.

Right now we're mainting a table in our database, with the countries + we have some implementation when it comes to holidays that aren't on the same date every year. We have to add to our implementation for every new country we get new customers.

Could we do this an easier way?

(If there is no such thing in the java sphere, can I port it from some other language?)

Edit
Report

3 Answers

14

Nothing robust exist in Java as far as I know. It also makes sense, this kind of information is namely extremely sensitive to changes. Hardcoding it would make your code potentially break on every Java update which may lead to lot of maintenance and compatibility troubles. Currently at hightest the timezones are hardcoded/maintained in Java SE and even alone that has already lead to many bugs.

Rather use a public webservice for that. E.g. http://www.bank-holidays.com

This site informs you of all the days when banks (as well as stock exchange & school holidays in a number of countries) are closed due to religious or public events. Major events (elections, announced strikes, trade fairs, festivals, sports events...) are also listed.

Our FREE SERVICE allows you to view the current calendar year (view only). For 2 euros/country/year, our PAY SERVICE (click on credit card icon) gives you access to calendar years 2000-2070.

And write a Java wrapper around that. Or look for existing Java API's which are in turn already backed by a webservice.

answered 2010-08-02T14:39:08.843
2

My searching has brought up two results (in addition to what I listed in the comments). The first, the Holiday Client API, seems to be a dead project. The second, Jollyday, looks like a very rough, but active, work in progress.

As for why there is no good library, I'm with Tom. I suspect that your premise "Surely there are lots of properly based rules for the holidays in 99% of the times" is incorrect.

answered 2010-08-02T14:43:04.727
0

So far I haven seen any. But what I could suggest for u is to try to link with google calendar api, which from there try to get the holiday calendar through the calendar feed or whatever u call it. From there, process the data and if u want, save it into your database. Afterall, as long as you have a active internet connection, you can use java to connect to the relevant data Even for other languages, I dont think that such direct methods are available.

answered 2010-08-02T14:38:45.717

Your Answer