java生成cron表达式

本文介绍了一个实用的Cron表达式生成工具,该工具能够根据不同的执行周期需求(如每年、每月、每周或每日)生成对应的Cron表达式,并提供相应的描述。通过几个简单的参数配置,即可轻松创建定时任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
     * 方法摘要:构建Cron表达式
     *
     * @param type      
     * @param dayOfMon  天
     * @param hour      小时 0-23
     * @param min       分钟 0-59
     * @param month     月份
     * @param dayOfWeek 周
     * @return
     */
    public static String genCron(int type, int min, int hour, int dayOfMon, int month, int dayOfWeek) {
        String cron = "";
        switch (type) {
            case 0:// 每年month月的dayOfMonth号的hour点min分00秒执行
                cron = "0 " + min + " " + hour + " " + dayOfMon + " " + month + " ?";
                break;
            case 1:// 每月的dayOfMon号的hour点param3分执行
                cron = "0 " + min + " " + hour + " " + dayOfMon + " * ?";
                break;
            case 2:// 每周的dayOfWeek的hour时,min分执行
                cron = "0 " + min + " " + hour + " ? * " + dayOfWeek;
                break;
            case 3:// 每天的hour时,min分执行
                cron = "0 " + min + " " + hour + " ? * *";
                break;
        }
        return cron;
    }

    /**
     * 方法摘要:构建Cron描述
     *
     * @param type      
     * @param dayOfMon  天
     * @param hour      小时 0-23
     * @param min       分钟 0-59
     * @param month     月份
     * @param dayOfWeek 周
     * @return
     */
    public static String genCronDesc(int type, int min, int hour, int dayOfMon, int month, int dayOfWeek) {
        String desc = "";
        switch (type) {
            case 0://   每年month月的dayOfMon号的hour时,min分执行
                desc = "每年" + month + "月" + dayOfMon + "号的" + hour + "点" + min + "分触发一次任务";
                break;
            case 1:// 每月的dayOfMon号的hour时,min分执行
                desc = "每月" + dayOfMon + "号的" + hour + "点" + min + "分触发一次任务";
                break;
            case 2:// 每周的dayOfWeek的hour时,min分执行
                desc = "每周" + (dayOfWeek - 1) + "的" + hour + "点" + min + "分触发一次任务";
                break;
            case 3:// 每天的hour时,min分执行
                desc = "每天" + hour + "点" + min + "分触发一次任务";
                break;
        }
        return desc;
    }

    // 参考例子
    public static void main(String[] args) {
        System.out.println(EfmGenCronUtil.genCron(0, 01, 14, 15, 2, 2));
        System.out.println(EfmGenCronUtil.genCronDesc(0, 01, 14, 15, 2, 2));
    }

在线校验 cron表达式运行结果  校验cron及在线生成

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值