zoukankan      html  css  js  c++  java
  • java生成Cron表达式

    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 }
  • 相关阅读:
    基于YIIFRAMEWORK框架开发学习(一)
    Android学习系列(24)App代码规范之使用CheckStyle
    64为操作系统,64位IIS,运行32位应用程序的问题
    IE下设置网页为 首页,收藏
    部分.net 目录
    强大的ldd
    (原创)初试Robotium
    在solaris上安装iperf
    (原创)LoadRunner 中 调用dll
    (原创)学习NotesList(Robotium自带的例子)
  • 原文地址:https://www.cnblogs.com/java0619/p/11613440.html
Copyright © 2011-2022 走看看