附表表示法(时间范围)

时间:2011-02-27 21:24:31

标签: java datetime notation

我有一些代码需要根据时间表执行操作:例如在营业时间做X,下班后做Y.时间表将由我们的客户定义,所以我需要一个可以由人写的并由我的程序解析的符号。我想的是:

12/25:0730-1730 Do Y
[Mo-Fr]:0730-1730 Do X
[Mo-Tu]:1730-0730 Do Y
Fr:1730-Mo:0730 Do Y

肯定会有每周变化。年度变化(假期)似乎很可能。我想要一个高效灵活的符号。

我还需要java代码来解析时间范围并告诉我给定日期时间的范围。

我在网上搜索过,一无所获。最接近的是CRON表示法,这不是我需要的。

任何人都知道现有的符号定义和实现吗?

谢谢,

2 个答案:

答案 0 :(得分:4)

For Java Joda time(Scala wrapper scala-time)是一个功能强大的时间库计算库。您可以查看google-rfc-2445,其中包含您要求的内容(?)。

如果您正在寻找Java调度程序,http://www.quartz-scheduler.org/是一个不错的选择。

答案 1 :(得分:1)

我认为你不会发现开箱即用的东西。在这种情况下,最好自己完成实现并完全控制代码。您可以使用antlr创建解析器。

为您的语法添加优先级概念。然后安排一些

会更容易
01.01.2011-31.01.2011 prio 1 do-idle-stuff
[Mo-Fr]               prio 2 do-work
[Sa-Su]               prio 2 weekend
10.02.2011-17.02.2011 prio 3 go-on-holidays