有谁知道用于时间计算的 DSL,能够理解诸如“本月最后一个工作日之后的第二个工作日”之类的概念?
我不介意编写解析器,但我需要语言本身的帮助。
有谁知道用于时间计算的 DSL,能够理解诸如“本月最后一个工作日之后的第二个工作日”之类的概念?
我不介意编写解析器,但我需要语言本身的帮助。
所有这类东西的典型来源是Nachum Dershowitz 和 Ed Reingold 的日历计算。首先,它是有史以来最受欢迎的 SP&E 论文;那是一本书;现在它已经是第三版了。有一次您可以下载 Lisp 代码,但该功能似乎已从网页中消失。还有一个小程序,很容易重新实现;我已经在 Icon 和 Lua 中完成了实现。
所以我建议你真正想要的是他们的库,然后如果你想要一个解析器,你就知道该怎么做。
看看 Jay Muntz 的“动态假期日期计算器”。
这是一个不同的用例,但除非您被所有 XML 关闭,否则可以在您的案例中使用相同类型的表示语言。我发现定义自定义日历很容易使用。
对于 Java,Joda 时间真的很流畅!
这可能不是您想要的,但您可能想看看 Chronic,一个 Ruby 库,用于执行以下操作: