Quartz 表达式生成API

仿照[url]http://www.oschina.net/p/cronexpbuilder?tp=2[/url]界面中的功能,实现了生成表达式API和从表达式到执行时间的API。

该程序是构造模式(Builder)的一个实践。

一、设计图


[img]http://dl.iteye.com/upload/attachment/547477/c2f530ff-0e8d-3b95-aa84-f8ba8f7a3b48.jpeg[/img]


二、API使用示例



public static void main(String[] args) {
//设置分钟,从4分开始,每5分钟循环一次
MinuteVo minuteVo = new MinuteVo();
minuteVo.setMcVo(new MinuteCycleVo(4, 5));
//设置小时,为每天1点和2点
HourVo hourVo = new HourVo();
hourVo.setAssign(new int[] { 1, 2 });
//设置日,为每月的2,4号
DayVo dayVo = new DayVo();
dayVo.setAssign(new int[] { 2, 4 });
//设置月,为每月
MonthVo monthVo = new MonthVo();
monthVo.setIsPer(Boolean.TRUE);
//不设置周
WeekVo weekVo = new WeekVo();
weekVo.setIsUse(Boolean.FALSE);
String expression =
ExpressionService.getExpression(minuteVo, hourVo, dayVo, monthVo,
weekVo);
System.out.println("Expression:" + expression);

// 获取8次下次执行时间
List<Date> dates =
ExpressionService.getNextTriggerTimes("0 0-3 14 * * ?", 8);
for (Date d : dates) {
System.out.println(DateFormatUtil.format("yyyy-MM-dd HH:mm:ss",
d));
}
}



执行结果:

[quote]Expression:0 0/5 1,2 2,4 * ?
2011-08-31 14:00:00
2011-08-31 14:01:00
2011-08-31 14:02:00
2011-08-31 14:03:00
2011-09-01 14:00:00
2011-09-01 14:01:00
2011-09-01 14:02:00
2011-09-01 14:03:00[/quote]

三、源代码

见附件。

四、注意事项

该程序依赖于quartz的API

[color=gray]如果您觉得本文对您有益,请点击博文后的google广告,对作者表示支持,谢谢![/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值