我需要一个DSL来进行时间计算

时间:2009-05-21 18:47:13

标签: programming-languages dsl

有没有人知道用于时间计算的DSL,能够理解诸如“本月最后一个工作日之后的第二个工作日”之类的概念?

我不介意编写解析器,但我需要语言本身的帮助。

4 个答案:

答案 0 :(得分:1)

所有这类东西的规范来源是Nachum Dershowitz和Ed Reingold的Calendrical Calculations。首先,这是史上最受欢迎的SP& E论文;那是一本书;现在是第三版。有一段时间你可以下载Lisp代码,但这个功能似乎已经从网页上消失了。还有一个小程序,很容易重新实现;我已经在Icon和Lua中完成了实现。

所以我建议你真正想要的是他们的库,然后如果你想要一个解析器,你知道如何做到这一点。

答案 1 :(得分:0)

这可能不是你想要的,但你可能想看看Chronic,一个Ruby库来做这样的事情:

http://chronic.rubyforge.org/

答案 2 :(得分:0)

看看Jay Muntz的“Dynamic Holiday Date Calculator”。

这是一个不同的用例,但除非您被所有XML关闭,否则在您的情况下可以使用相同类型的表示语言。我发现定义自定义日历很容易。

答案 3 :(得分:0)

对于Java,Joda time非常流畅!