JAVA根据每天每周每月生成cron表达式

由于现有cron生成页面过于复杂,因此简化为下图所示
每日执行
每周1的4点10分执行
每月1号的6点20分执行
注意:按每周执行时,选择的周一 需要传2,周二-3,周三-4,周四-5,周五-6,周六-7,周日-1,按照该对应关系才可。

对应的转换cron工具类如下

package com.develop.common.utils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @ClassName: CronUtil
 * @author bxf
 * @date 2020-6-30 16:09:09
 *
 */
public class CronUtil {
   

	/**
	 * 方法摘要:构建Cron表达式
	 * @param type 类型 0:每天一次;1:每周一次;2:每月一次
	 * @param param1 下拉列表,根据type进行变换, type=0时,param1=0;type=1时,param1从1-7选;type=2时,param1从1-28选
	 * @param param2 小时 0-23
	 * @param param3 分钟 0-59
	 * @return
	 */
    public static String createLoopCronExpression(int type,int param1,int param2,int param3) {
   
        String cron = "";
        switch (type) {
   
        case 0:// 每天的param2时,param3分执行
            cron = "0 "+ param3+" "
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,根据您的问题,我可以给出一个参考答案: Java中可以使用Quartz Cron表达式生成器来生成Cron表达式。下面是一个示例代码: ```java import org.quartz.CronExpression; public class CronExpressionGenerator { public static void main(String[] args) { // 根据秒生成cron表达式,这里以每分钟的第30秒为例 String cronExpression = generateCronExpression("30 * * * * ?"); System.out.println(cronExpression); // 输出:0 0/1 * 1/1 * ? * } /** * 根据给定的时间表达式生成Cron表达式 * @param timeExpression 时间表达式,格式为 "ss mm HH dd MM ? yyyy" * @return Cron表达式 */ public static String generateCronExpression(String timeExpression) { // 将时间表达式转换为CronExpression对象 CronExpression cronExpression = null; try { cronExpression = new CronExpression(timeExpression); } catch (Exception e) { e.printStackTrace(); } // 根据CronExpression对象生成Cron表达式 return cronExpression == null ? null : cronExpression.getCronExpression(); } } ``` 代码中使用了Quartz框架中的CronExpression类来将时间表达式转换为Cron表达式。需要注意的是,时间表达式的格式为 "ss mm HH dd MM ? yyyy",其中ss表示秒,mm表示分,HH表示小时,dd表示天,MM表示月,yyyy表示年。而Cron表达式的格式为 "秒 分 时 日 月 周年",其中周年可以省略。 以上代码只是一个简单示例,您可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值