Язык для выражения сложных временных интервалов? - PullRequest
2 голосов
/ 16 июля 2009

Мне интересно, знает ли кто-нибудь какой-либо декларативный язык для выражения абсолютных даты и времени через несколько интервалов. Я имею в виду множества, которые являются объединением / пересечением / дополнением временных интервалов.

Интервалы, которые я хотел бы изобразить:

(
 (from the second day of the month to the 10th) intersection (months 1,2,3,10)
)
union
(
  (from the second monday of january to the 3rd of july) intersection (not in(mondays, fridays))  
)  

Я ищу не библиотеку, а какую-то языковую спецификацию.

Примером того, что я ищу, являются выражения cron, которые вы можете найти здесь .

Ответы [ 3 ]

1 голос
/ 03 сентября 2015

Кажется, кто-то наконец-то разработал dsl только для этого: schyntax .

0 голосов
/ 16 июля 2009

Диалект SQL, может быть?

Date from Days 
where Month in (Jan, Feb, Mar, Oct)
    and Day between 2 and 10

union

Date from Days
where Date between SecondMondayOf(Jan) and July,3
    and DayOfWeek not in (Mon, Fri)
0 голосов
/ 16 июля 2009

Ну, возможно, вы не ищете библиотеку, но библиотека JODA для Java, когда она используется, приближается по структуре использования к тому, что вы показали. Посмотри на это.

...