欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CRON 表达式生成类

程序员文章站 2022-05-24 21:08:03
...
public class CronUtils {
	/**
	 * 
	 * @param date
	 * @param rate	频率
	 * 0   不重复
	 * 1   每天
	 * 2   每周
	 * 3   每月
	 * 4   每年
	 * 5   每季度
	 * @return
	 */
	public static String getCron(Date date,int rate) {
		//获取星期
		Calendar cal=Calendar.getInstance();
		cal.setTime(date);
		int week = cal.get(Calendar.DAY_OF_WEEK);
		//格式化时间
		SimpleDateFormat sdf = new SimpleDateFormat("ss,mm,HH,dd,MM,yyyy");
		String[] ss = sdf.format(date).split(",");
		String cron = null;
		//按频率编写cron表达式
		switch(rate){
		case 0: 
			cron = ss[0]+" "+ss[1]+" "+ss[2]+" "+ss[3]+" "+ss[4]+" ? "+ss[5];
			break;
		case 1: 
			cron = ss[0]+" "+ss[1]+" "+ss[2]+" * * ? *";
			break;
		case 2: 
			cron = ss[0]+" "+ss[1]+" "+ss[2]+" ? * "+week+" *";
			break;
		case 3: 
			cron = ss[0]+" "+ss[1]+" "+ss[2]+" "+ss[3]+" * ? *";
			break;
		case 4: 
			cron = ss[0]+" "+ss[1]+" "+ss[2]+" "+ss[3]+" "+ss[4]+" ? *";
			break;
		case 5: 
			cron = ss[0]+" "+ss[1]+" "+ss[2]+" "+ss[3]+" "+ss[4]+"/3 ? *";
			break;
		}
		return cron;
	}
}

 

相关标签: cron