假期 – 有没有一个Java实现?

我想知道是否有一个jar文件可以做到以下几点:

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

如果没有,为什么? 当然,在99%的时间里,有很多适合假期的规则。

现在我们正在维护数据库中的一个表格,在国家/地区,我们有一些实施,当涉及到每年不同日的假期时。 我们必须在每个新的国家增加新的客户。

我们可以做一个更简单的方法吗?

(如果在Java领域没有这样的东西,我可以从其他语言中移植它?)

据我所知,Java没有健壮的存在。 这也是有道理的,这种信息对变化是非常敏感的。 对其进行硬编码会使您的代码在每次Java更新时都可能中断,这可能会导致大量的维护和兼容性问题。 目前在最高的时区是硬编码/维护在Java SE甚至单独已经导致许多错误 。

而是使用公共Web服务。 例如http://www.bank-holidays.com

由于宗教或公共事件,本网站将告知您银行(以及一些国家的证券交易所和学校假期)closures的所有日子。 重大事件(选举,宣布的罢工,交易会,节日,体育赛事……)也列出。

我们的免费服务允许您查看当前日历年(仅查看)。 对于2欧元/国家/年,我们的支付服务(点击信用卡图标)可让您访问日历年2000-2070。

然后写一个Java包装器。 或者查找已经由web服务支持的现有Java API。

我写了Jollyday API,我很想知道这是什么“粗糙”。 我该如何改进呢? 听到你的消息真是太棒了。 如果你喜欢,给我发一封电子邮件给sdiedrichsen@yahoo.de。

顺便一提。 Jollyday只是用于提问者所要求的方式。 请找你自己。

干杯,斯文

PS:我发现了Ulrich Hilger提供的免费networking服务,它提供了详细的全球假期信息。 看看api.daybase.eu

我还写了一个关于Ruby Holidays Gem的Java包装器,它可以在Github上find: https : //github.com/gdepourtales/holidays 。它和Jollyday类似( http://sourceforge.net/projects/jollyday/ )。

我的search提出了两个结果(除了我在评论中列出的)。 首先, 假日客户端API ,似乎是一个死的项目。 第二, Jollyday ,看起来像一个非常粗糙,但积极的工作正在进行中。

至于为什么没有好的图书馆,我和汤姆在一起。 我怀疑你的前提“在99%的时间里,对于假期来说,肯定有很多适当的规则”是不正确的。

我想你必须自己去做这个工作。

国庆节是由国家决定的。 它们可以改变,而且根据定义,它们不是通用的,因此不能被某种algorithm所捕获。

跟踪他们的唯一方法就是保持每个国家的基础上。

也许有人已经这样做了(也许是一个Web服务),但我怀疑,说实话。

到目前为止,我还没有看到任何。 但我可以build议你是试图链接与谷歌日历API,从那里试图通过日历饲料或任何你打电话给它的假日日历。 从那里,处理数据,如果你想,把它保存到你的数据库。 毕竟,只要你有一个活跃的互联网连接,你可以使用java连接到相关的数据即使对于其他语言,我不认为这种直接的方法是可用的。

我发现这很有趣:

RESTful服务提供者 – Holiday API

对于Node项目 – node-holidayapi

我知道这是不相关的Java实现问题。 但是如果你的项目是RESTful的(就像现在的大多数项目),那么这会给你一个开始的地方。 ;)