3

我有一些代码需要根据时间表做事:例如,在工作时间做 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 表示法,这不是我所需要的。

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

谢谢,

4

2 回答 2

4

对于 Java Joda 来说,时间(Scala 包装器scala-time)是一个强大的时间计算库。您可以查看google-rfc-2445,它的功能类似于您所要求的(?)。

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

于 2011-02-27T21:53:32.363 回答
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
于 2011-02-27T21:34:39.470 回答