4

我正在编写一个需要支持事件的日期和日期范围的应用程序。我特别希望能够为定期重复的活动提供强有力的支持,例如商店营业时间或定期旅行。我希望能够支持用户输入查询,例如:

“我们每个工作日上午 8 点至下午 6 点开放,周六上午 8 点至 10 点开放”
“我每周五下午 6 点至晚上 10 点有空,每个月的第三个星期五除外”
“每月 25 日定期会议”“定期
会议从 11 月 3 日开始,每 28 天举行一次会议”

然后,能够快速判断给定的 DateTime 是否在指定的范围内,或者两个用户指定的时间之间的重叠在哪里。

有没有可以满足我需求的图书馆?

编辑:澄清一下,我并不特别需要自然语言解析,只需要复杂的间隔和重叠。

4

1 回答 1

4

你应该看看 Joda-Time http://joda-time.sourceforge.net/。它几乎是最好的 Java 日期时间库,我认为您可以使用间隔来指定商店何时开放:Joda-Time 中的间隔表示从一个瞬间到另一个瞬间的时间间隔。
您还应该查看http://code.google.com/p/google-rfc-2445/,因为它似乎更接近您想要使用的重复事件。另外我认为这个库实际上使用了 Joda Time。

于 2013-01-21T03:37:26.853 回答