Schedule notation (time ranges)

[亡魂溺海] 提交于 2019-12-12 13:35:12

问题


I have some code which needs to do things based on a schedule: e.g. during business hours do X, after hours do Y. The schedule will be defined by our customer's so I need a notation which can be written by people and parsed by my program. I'm thinking of something like:

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

There will definitely be weekly variation. Yearly variation (holidays) seems likely. I would like a notation that is efficient and flexible.

I also need java code which will parse the time ranges and tell me which range a given date time is in.

I've searched the web and found nothing. Closest is CRON notation, which is not quite what I need.

Any one know of an existing notation definition and implementation?

Thanks,


回答1:


For Java Joda time (Scala wrapper scala-time) is a powerful library for time calculations. You could look at the google-rfc-2445 which does something like what you are asking for (?).

If you are looking for a Java scheduler http://www.quartz-scheduler.org/ is a good option.




回答2:


I don't think you will find something out of the box. In such cases it's better to do the implementation by yourself and have a full control of the code. You can use antlr to create a parser.

Add a notion of priority to your syntax. Then it will be easier to schedule someting

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


来源:https://stackoverflow.com/questions/5136097/schedule-notation-time-ranges

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!