1、上代碼
1 /** 2 * @ClassName: CronUtil 3 * @Description: Cron表達式工具類 目前支持三種常用的cron表達式 1.每天的某個時間點執行 例:12 12 12 * * 4 * ?表示每天12時12分12秒執行 2.每周的哪幾天執行 例:12 12 12 ? * 1,2,3表示每周的周1周2周3 5 * ,12時12分12秒執行 3.每月的哪幾天執行 例:12 12 12 1,21,13 * ?表示每月的1號21號13號 6 * 12時12分12秒執行 7 * @author 8 * @date 9 * 10 */ 11 public class CronUtil { 12 13 /** 14 * 15 * 方法摘要:構建Cron表達式 16 * 17 * @param rate 頻率 0秒;1分;2小時;3日;4月 18 * @param cycle 周期 19 * @return String 20 */ 21 public static String createLoopCronExpression(int rate, int cycle) { 22 String cron = ""; 23 switch (rate) { 24 case 0:// 每cycle秒執行一次 25 cron = "0/" + cycle + " * * * * ?"; 26 break; 27 case 1:// 每cycle分鍾執行一次 28 cron = "0 0/" + cycle + " * * * ?"; 29 break; 30 case 2:// 每cycle小時執行一次 31 cron = "0 0 0/" + cycle + " * * ?"; 32 break; 33 case 3:// 每cycle天的0點執行一次 34 cron = "0 0 0 1/" + cycle + " * ?"; 35 break; 36 case 4:// 每cycle月的1號0點執行一次 37 cron = "0 0 0 1 1/" + cycle + " ? "; 38 break; 39 case 5:// 每天cycle點執行一次 40 cron = "0 0 " + cycle+ " * * ?"; 41 break; 42 default:// 默認每cycle秒執行一次 43 cron = "0/1 * * * * ?"; 44 break; 45 } 46 return cron; 47 } 48 49 /** 50 * 51 * 方法摘要:構建Cron描述 52 * 53 * @param rate 頻率 0秒;1分;2小時;3日;4月 54 * @param cycle 周期 55 * @return String 56 */ 57 public static String createLoopCronDescription(int rate, int cycle) { 58 String desc = ""; 59 switch (rate) { 60 case 0:// 每cycle秒執行一次 61 desc = "每隔" + cycle + "秒觸發一次任務"; 62 break; 63 case 1:// 每cycle分鍾執行一次 64 desc = "每隔" + cycle + "分鍾觸發一次任務"; 65 break; 66 case 2:// 每cycle小時執行一次 67 desc = "每隔" + cycle + "小時觸發一次任務"; 68 break; 69 case 3:// 每cycle天的0點執行一次 70 desc = "每隔" + cycle + "天的0點觸發一次任務"; 71 break; 72 case 4:// 每cycle月的1號0點執行一次 73 desc = "每隔" + cycle + "月的1日0點觸發一次任務"; 74 break; 75 case 5:// 每天cycle點執行一次 76 desc = "每天" + cycle + "點執行一次任務"; 77 break; 78 default:// 默認每cycle秒執行一次 79 desc = "每隔" + cycle + "秒觸發一次任務"; 80 break; 81 } 82 return desc; 83 } 84 85 // 參考例子 86 public static void main(String[] args) { 87 88 System.out.println(CronUtil.createLoopCronExpression(5, 1)); 89 System.out.println(CronUtil.createLoopCronDescription(5, 1)); 90 // 執行時間:每天的12時12分12秒 end 91 92 } 93 }